operator =

2020-10-20  本文已影响0人  yuerxiaoshui

1. 赋值操作的结合顺序

赋值操作的结合顺序是从右到左,即

a = b = c;
a = (b = c);

2. 输入参数一般为 const classname &

加 const 是因为:

加引用是因为:

3. 函数返回类型一般为 classname &,返回当前值 (return *this; )

原因是:

4. 默认赋值构造函数

当程序没有显式地提供一个以 类类型类的引用类型 为参数的赋值构造函数时,编译器会提供一个默认的赋值构造函数 (程序提供了一个赋值构造函数,但参数非类类型非类的引用类型时,编译器也可能会提供默认的赋值构造函数)

5. 赋值操作调用拷贝构造函数

当使用一个非类类型的值为类类型对象进行赋值时:

6. 赋值构造函数只能是类的非静态成员函数

不能是静态成员函数,是因为:

不能是友元函数,是因为:

7. 赋值构造函数不能被继承

为什么不能被继承呢?

8. 赋值构造函数处理自赋值

证同测试
if (this == &rhs) return *this;

上一篇下一篇

猜你喜欢

热点阅读