Скажем, у меня есть строка кода, как это:Как назначить переменную новый объект
MyClass obj(1, 2, "hello");
И в какой-то момент в будущем, я хочу, чтобы присвоить obj
новое значение, т.е. obj(3, 4, "bye")
. Как это сделать?
Я имею в виду Java Я хотел бы сделать это:
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");
И это ac но я не уверен, что это лучший способ добиться этого.
Пожалуйста, предложите мне чистый способ присвоить переменную новый объект и сообщить мне, есть ли какие-либо дополнительные усилия, необходимые для управления памятью после такого назначения.
Пожалуйста, имейте в виду, что я начал изучать C++ два дня назад, но я знаю ООП понятия, как хорошо, как я знаю, сколько пальцев руки у меня есть.
Вторая вещь, которую вы пробовали, прекрасна и идиоматична. Вы также можете предоставить методы для изменения значений членов. – juanchopanza
@juanchopanza Я не видел никаких примеров этого в учебниках http://www.cplusplus.com, поэтому я думал, что это не очень хороший способ сделать это. Но что, если я использую объект 'stringstream', т. Е.' Stringstream ss (line); ss = stringstream (anotherline); '. Это тоже хорошо? – Salivan
cplusplus.com - это не совсем здорово. Что касается 'stringstream', это сработает, но только с C++ 11. До этого вы не могли копировать или назначать этот тип. – juanchopanza