Я использую библиотеку, у которой есть класс с функцией init, отличной от его конструктора. Каждый раз, когда я делаю новый экземпляр, мне нужно вызвать, например:
MyClass a;
a.init();
Так как init не const, это мешает мне создавать экземпляры const (я не могу написать const MyClass a). Есть ли способ вызвать init, а затем объявить из "here on out" (я думаю, для остальной части области) моя переменная const?
Это работает, но полагается на не касание исходной переменной:
MyClass dont_touch;
dont_touch.init();
const MyClass & a = dont_touch;