【发布时间】:2014-10-12 04:01:26
【问题描述】:
现在我不需要重载赋值参数或编写复制构造函数 (至少,我似乎从来不用,因为我从来没有遇到过问题)
据我所知,当我想在初始化后将一个对象及其值复制到另一个对象时,必须重载赋值运算符(与 CopyConstructor 相同,但在初始化时)。
Object a;
Object b;
// do something with a
b = a; //for this line, the Assignment Parameter must be overloaded (nearly never do such things)
Object c = a; // needs a Copy constructor
但如果我这样写:
Object a;
Object* b;
b = &a; //I think I won't need one here since b actually points to Object a
Object* c = a; // I think same here
但是,如果我将一个对象复制到它自己的类/父类之外,我该怎么办。
class MyOtherClass{Object obj..........}
void MyOtherClass::SetObject(Object obj)
{
this->obj = obj; // Assignment operator overloading needed in class Object?
}
我必须重载 Object 类中的赋值运算符吗? 如果我执行以下操作会怎样:
void MyOtherClass::SetObject(Object &obj)
{
this->obj = obj; // Assignment operator overloading needed in class Object?
}
最后一个问题,这是否也包括Enums?(我认为是的)
void MyOtherClass::SetObject(ENumClass Eobj)
.
.
【问题讨论】:
标签: c++ object instance copy-constructor assignment-operator