如何为变量分配新对象

时间:2014-10-12 18:40:33

标签: c++ variables object constructor variable-assignment

假设我有一行代码如下:

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 概念,因为我知道我的手有多少手指。

1 个答案:

答案 0 :(得分: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");

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