Редактировать: использование какого-либо умного указателя часто является хорошей идеей, но я считаю, что все еще необходимо иметь четкое понимание ручного управления памятью в C ++.
Если вы хотите, чтобы объект в классе сохранялся до конца программы, вы можете просто сделать его переменной-членом. Из того, что вы сказали, нет ничего, что могло бы предложить вам использовать new
или delete
здесь, просто сделайте это автоматической переменной. Если вы хотите использовать new
и delete
для практики, вы должны прочитать о конструкторах и деструкторах для класса (вы можете и будете использовать new
и delete
вне занятий, но я стараюсь, чтобы это было актуально для вашего вопроса). Вот тот, который я подготовил ранее:
class Foo
{
public:
Foo(); // Default constructor.
~Foo(); // Destructor.
private:
int *member;
}
Foo::Foo() // Default constructor definition.
{
member = new int; // Creating a new int on the heap.
}
Foo::~Foo() // Destructor.
{
delete member; // Free up the memory that was allocated in the constructor.
}
Это простой пример, но, надеюсь, он вам поможет. Обратите внимание, что переменная будет сохраняться только до тех пор, пока объект жив. Если объект уничтожен или выходит из области видимости, будет вызван деструктор и память будет освобождена.