如何为变量分配新对象
How to assign a variable a new object
假设我有一行代码,如下所示:
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");
如果在类中定义了有效的复制或移动赋值运算符,则有效。
相关文章:
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- C++ 如何在将新对象分配给另一个对象时创建新对象
- 重用对象与创建新对象
- C++,创建新对象时类的对象更改
- 运算符重载 += 添加新对象
- 如何在运行时在对象数组中动态追加新对象C++并打印它们
- 从使用概念定义的函数返回新对象
- 从 Rcpp 函数返回指向"新"对象的指针的正确方法
- 如何删除派生类中基类对象的新对象
- 有没有一种方法可以从函数中返回一个新对象或对现有对象的引用
- 为模板参数类型中的新对象分配内存
- 删除通过取消引用新对象初始化的对象
- C++ 实例化新对象时不接受继承方法默认参数值
- 有没有办法删除传递给函数"foo(新对象())"的对象?
- 将 Eigen::MatrixXd 转换为 arma::mat 并在新对象上制作副本
- 创建新对象并立即为其设置属性时出现编译器错误
- 如何异步销毁对象并立即分配一个新对象
- 删除传递给 C++ 中成员函数的新对象
- 具有构造函数的新对象数组,需要在C++中设置参数
- 我可以制作一个对象方法,如果单独调用,它将自行修改,但如果在复制初始化期间调用,则会返回一个新对象?