本文共 358 字,大约阅读时间需要 1 分钟。
1.将已有的对象赋给另一个对象时,将调用重载的赋值运算符。
2.初始化对象时,并不一定会使用赋值操作符:
StringBad metoo=knot; // use copy constructor, possibly assignment, too
这里,metoo是一个新创建的对象,被初始化为knot的值,因此使用赋值构造函数。不过,正如前面指出的,实现时也可能分两步来处理这条语句:使用复制构造函数创建一个临时对象,然后通过赋值操作符将临时对象的值复制到新对象中。这就是说,初始化总是会调用复制构造函数,而使用=操作符时也可能调用赋值构造函数。
与复制构造函数相似,赋值运算符的隐式实现也对成员进行逐个复制。如果成员本身就是类对象,则程序将使用为这个类定义的赋值运算符来复制该成员,但静态数据成员不受影响。转载地址:http://vyix.baihongyu.com/