码迷,mamicode.com
首页 > 编程语言 > 详细

【C++ Primer 第15章】定义派生类拷贝赋值运算符

时间:2018-06-22 20:30:59      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:out   拷贝赋值运算符   lan   name   default   title   class   clu   space   

学习资料

派生类的赋值运算符/赋值构造函数也必须处理它的基类成员的赋值

定义赋值运算符

【注意】对派生类进行拷贝构造时,如果想让基类的成员也同时拷贝,就一定要在派生类拷贝构造函数初始化列表中显示调用基类拷贝构造函数(当然在函数体内将基类部分的值拷贝也是可以的,只不过它是先用默认构造函数初始化后再修改的基类成员变量的值,效率比较低),否则它会调用基类的默认构造函数,而不会对基类的成员变量拷贝值,这样生成的对象,它的派生类部分和被拷贝的对象派生类部分一样,而基类部分则是默认构造函数的初始化结果。

 

 1 #include <iostream>
 2 using namespace std;
 3 
 4 class A
 5 {
 6 public:
 7     A() { cout << "A default constructor" << endl; }
 8     A(A&) { cout << "A copy constructor" << endl; }
 9 };
10 class B : public A
11 {
12 public:
13     B() { cout << "A default constructor" << endl; }
14     B(B &b) { cout << "B copy constructor" << endl; }
15 };
16 
17 int main()
18 {
19     B b;
20     B c = b;
21     return 0;
22 }

输出结果:

 

【C++ Primer 第15章】定义派生类拷贝赋值运算符

标签:out   拷贝赋值运算符   lan   name   default   title   class   clu   space   

原文地址:https://www.cnblogs.com/sunbines/p/9215310.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!