条款 12
来源:互联网 发布:网络延时测试工具 编辑:程序博客网 时间:2024/04/29 11:15
一,在派生类的copy构造函数中调用基类的copy构造函数
class Base{private: string name; int age;public: Base(const Base& rhs):name(rhs.name), age(rhs.age){} Base& operator=(const Base& rhs){ name = rhs.name; age = rhs.age; return *this; }};class Derived : public Base{private: int grade;public: Derived(const Derived& rhs): Base(rhs), //调用Base class的copy构造函数 grade(rhs.grade){} Derived& operator=(const Derived& rhs){ Base::operator=(rhs); //对Base class部分进行赋值动作 grade = rhs.grade; return *this; }};程序分析:
如果在Derived class中的copy构造函数中,没有调用Base class的copy构造函数,此时只会复制Derived class声明的成员变量,但是它包含的Base class部分没有被复制,因此Derived对象的Base成分会被Base class的default 构造函数初始化。如果重写派生类的copy构造函数,此时应当显示调用基类的copy构造函数。对于copy assignment运算符来说,原理是一样的。
阅读全文
0 0
- 条款 12
- effective C++ 条款05 to 条款12
- 【Effection C++】读书笔记 条款10~条款12
- Effective C++ 条款12
- Effective STL 条款12
- 条款
- effective C++ 读书笔记 条款12与条款13
- 《Effective C++》构造/析构/赋值 函数:条款10-条款12
- 【Effective C++读书笔记】篇五(条款10~条款12)
- effective C++ 读书笔记 条款12
- EffectiveC++学习笔记-条款12
- Effective C++——条款10条,条款11和条款12(第2章)
- effective c++条款12学习总结
- 【Effective STL】条款6-12学习笔记
- 条款12:复制对象时勿忘每个成员
- Effective C++(条款5-12)
- C++-必知必会_赋值和初始化并不相同(条款12)
- 条款12:复制对象时勿忘其每一个成分
- Spring4.3.8MVC中文文档-22.2-The DispatcherServlet-前置控制器
- Android 事件分发
- 小米5S升级 并且搭建XP框架(原先已有)
- Linux 下signal 解析
- JavaScript中typeof, null, 和 undefined
- 条款 12
- JAVA API调用elasticsearch实现基本增删改查
- SVN 如何废弃保存在本地的服务器端资源库位置
- poj 1410 Intersection
- $.ajax()方法详解
- 一个介绍机顶盒、DVB、TS、SI的系统网站,简洁深刻
- windows10 下jupyter路径
- angular中的一个坑
- String,StringBuffer以及StringBuilder的区别