Как присвоить переменной новый объект

Допустим, у меня есть такая строка кода:

MyClass obj(1, 2, "hello");

И в какой-то момент в будущем я хочу назначить obj новое значение, т.е. obj(3, 4, "bye"), Как это сделать?

Я имею в виду в Джава Я бы сделал это:

MyClass obj = new MyClass(1, 2, "hello");
obj = new MyClass(3, 4, "bye");

В C ++ Я попробовал это:

MyClass obj(1, 2, "hello");
obj(3, 4, "bye");

Но это не сработало, поэтому я тоже попробовал это:

MyClass obj(1, 2, "hello");
obj = MyClass(3, 4, "bye");

И это действительно сработало, но я не уверен, является ли это предпочтительным способом достижения этого.

Пожалуйста, предложите мне чистый способ присвоения переменной новый объект и скажите, нужно ли предпринимать какие-либо дополнительные усилия для управления памятью после такого назначения.

Пожалуйста, имейте в виду, что я начал учиться C ++ два дня назад, но я знаю OOP Я знаю, сколько пальцев у меня на руках.

1

Решение

Код на C ++, который похож на код Java

MyClass obj = new MyClass(1, 2, "hello");
obj = new MyClass(3, 4, "bye");

будет выглядеть

MyClass *obj = new MyClass(1, 2, "hello");
delete obj;
obj = new MyClass(3, 4, "bye");

То, как вы используете для назначения объекта в C ++, как

MyClass obj(1, 2, "hello");
obj = MyClass(3, 4, "bye");

допустимо при условии, что в классе определен допустимый оператор присваивания копии или перемещения.

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru