假设我有一行代码如下:
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 概念,因为我知道我的手有多少手指。
答案 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");
有效,前提是在类中定义了有效的复制或移动赋值运算符。