如何将变量分配给新对象

Sal*_*van 5 c++ variables constructor object variable-assignment

假设我有一行这样的代码:

MyClass obj(1, 2, "hello");
Run Code Online (Sandbox Code Playgroud)

在未来的某个时候,我想分配obj一个新值,即obj(3, 4, "bye"). 这个怎么做?

我的意思是在Java中我会这样做:

MyClass obj = new MyClass(1, 2, "hello");
obj = new MyClass(3, 4, "bye");
Run Code Online (Sandbox Code Playgroud)

C++中我尝试过这个:

MyClass obj(1, 2, "hello");
obj(3, 4, "bye");
Run Code Online (Sandbox Code Playgroud)

但它不起作用,所以我也尝试过:

MyClass obj(1, 2, "hello");
obj = MyClass(3, 4, "bye");
Run Code Online (Sandbox Code Playgroud)

它确实有效,但我不确定这是否是实现这一目标的首选方法。

请建议我一种干净的方法来为变量分配一个新对象,并告诉我在分配后是否需要任何额外的工作来管理内存。

请记住,我两天前开始学习C++ ,但我对OOP概念的了解就像我知道我的手有多少根手指一样。

Vla*_*cow 4

C++ 中的代码与 Java 代码类似

MyClass obj = new MyClass(1, 2, "hello");
obj = new MyClass(3, 4, "bye");
Run Code Online (Sandbox Code Playgroud)

看起来像

MyClass *obj = new MyClass(1, 2, "hello");
delete obj;
obj = new MyClass(3, 4, "bye");
Run Code Online (Sandbox Code Playgroud)

您在 C++ 中分配对象的方式如下

MyClass obj(1, 2, "hello");
obj = MyClass(3, 4, "bye");
Run Code Online (Sandbox Code Playgroud)

前提是类中定义了有效的复制或移动赋值运算符。