Предположим, у меня есть класс FOO.Какая из них лучше?
Я хочу иметь std::vector
от FOO.
ли лучше, если я что-то вроде этого:
FOO foo;
foo.init();
foo.prop = 1;
std::vector<FOO> myvec;
myvec.push_back(foo);
foo.prop = 2;
myvect.push_back(foo);
или лучше практика, чтобы сделать:
std::vector<FOO> myvec;
FOO foo;
myvec.push_back(foo);
myvec.back().init();
myvec.back().prop = 1;
myvec.push_back(foo);
myvec.back().init();
myvec.back().prop = 2;
Я в принципе не уверен, что если его лучше сделать модель и толкайте модель вместо того, чтобы делать экземпляр, нажимая его, а затем изменяя его из вектора. Кроме того, какой из них безопаснее и наименее вероятно приведет к утечке памяти?
Благодаря
Почему Foo :: Foo() не вызывает Foo :: init()? Это может помочь, если вы разместите конкретный класс Foo. –
Утечки памяти не будут возникать, если вы не используете новые без удаления. –