В настоящее время я пытаюсь приступить к написанию правильного кода на C ++ (его запуск был приемлем для некоторых небольших прототипов, но он был уродливым).
Недавно я осознал разницу между экземплярами кучи и стека (O m= new O () против O m ()).
Теперь у меня есть класс, в котором заголовочный файл определяет переменную, которая содержит определение таблицы.
ChunkLoader.hpp:
TablePartion * tablePartial _;
ChunkLoader.cpp:
ChunkLoader () {tablePartial_ = new TablePartial (true, 0, 1);}
Теперь я хочу создать экземпляр tablePartial в стеке, но не могу использовать: TablePartial tablePartial_(true, 0, 1);
Я полностью слепой?Как я могу выделить tablePartial_ в стеке?Или я получаю это совершенно неправильно, и я не могу использовать в конструкторе, так как он будет вне области видимости после конструктора и, следовательно, будет освобожден?Но так как я прочитал, что переменные стека улучшают производительность, я бы хотел использовать инстанцирование стека (и становится красным delete
).
Основная причина: переполнение стека подсказало мне избавиться от указателей, когдакогда-либо возможно.:)