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概念的了解就像我知道我的手有多少根手指一样。
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)
前提是类中定义了有效的复制或移动赋值运算符。