如何为变量分配新对象

How to assign a variable a new object

本文关键字:对象 新对象 分配 变量      更新时间:2023-10-16

假设我有一行代码,如下所示:

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");

它确实起了作用,但我不确定这是否是实现这一目标的首选方式。

请给我一个干净的方法,给一个变量分配一个新对象,并告诉我在这样的分配之后是否需要管理内存。

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

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");

如果在类中定义了有效的复制或移动赋值运算符,则有效。