Мне нужно объявить и инициализировать вектор как поле класса с именем PixelOperator
.Как должны быть объявлены поля классов на C++?
Я разорван между этими двумя методами объявления, первый - «на куче», а второй «на стек» (или, по крайней мере, это моя интерпретация).
vector<int>* field = new vector<int>();
vector<int> field = vector<int>();
Если я выбираю объявить в стиле номер 1, мне нужно позвонить удалить в деструкторе класса.
Какой из них выбрать, и почему?
Также, если класс инициализирован в куче (т.е. PixelOperator* op = new PixelOperator();
), являются ли инициализированы поля в стеке, инициализированном в куче?
Правильно, за исключением того, что метод 2 поместит вектор везде, где будет помещен объект «PixelOperator», который может находиться в стеке (PixelOperator pix; '), или он может быть в куче (« PixelOperator * pix = new PixelOperator; '). –