C++ Primer Chapter 15-5
来源:互联网 发布:知字的意思是什么 编辑:程序博客网 时间:2024/06/05 22:01
1:调用非虚函数时,不会发生动态绑定,只有调用虚函数时才会动态绑定。
2:派生类可以覆盖重载的函数,如果一个基类虚函数或者成员函数有好多个重载版本,那么在派生类中想要重新定义某一个版本,就必须重新定义所有版本函数(否则根据按名字查找的特性,其他的版本将会不可见),其他的重载版本在该派生类作用域中会被隐藏,但是又不想把所有的版本都重载,可以用 using 声明一下,这样就可以只覆盖想重新定义的版本了。因为派生类作用域是嵌套在基类中的。
3:为了保证 delete 基类指针时,由于基类的指针静态类型和动态类型有可能不符,为了保证执行正确的析构函数,要把基类的析构函数定义成虚函数。
4:派生类的基类部分由基类自己的构造函数初始化,由基类的析构函数负责销毁。这一点关乎到一个派生类的初始化操作和析构操作的很多细节问题。所有关于基类部分的成员的操作都要基类自己完成,不可以由基类负责完成。同时赋值也是一样的。
5:一般基类没有默认、拷贝或移动构造函数,那么派生类一般也没有。
6:如果派生类的构造函数不显示的初始化基类部分,那么就会调用默认的基类构造函数。
7:与构造函数不一样,派生类赋值运算符必须显示的为基类部分执行赋值运算符,不会隐式的执行。
8:而析构函数,派生类调用自己的析构函数,派生类的基类部分会自动的(隐式)调用基类析构函数,执行销毁操作。销毁顺序与创建顺序相反。
9:在构造函数和析构函数中调用虚函数知会调用自己的版本。
10:可以用 using 来声明继承直接基类的构造函数。using baseclass_name::baseclass_name 。可以令编译器直接生成派生类的构造函数,这些派生类的构造函数形参列表与基类完全一样,只不过名字换成了派生类的。并且不会改变该构造函数的访问属性。但是该继承不能继承默认、拷贝构造、移动构造函数。类似与生成下面这个构造函数,prams 形参列表与基类完全一样。
derived(prams):base(arg){}
11:在容器中存放一些继承关系的系列对象时,我们可以用基类指针去管理对象,而达到这一目的。这些对象都是动态的类型。
12:如果我们在基类对象的容器中存放派生类对象,那么派生类的对象的基类部分被保留,而非基类部分将会被忽略。
阅读全文
0 0
- C++ Primer Chapter 15-5
- C++Primer-Function chapter
- C primer plus -- Chapter 2
- [primer]Chapter-5 Expressions
- C++ Primer Chapter 5
- C++ Primer Chapter 15-1
- C++ Primer Chapter 15-2
- C++ Primer Chapter 15-3
- C++ Primer Chapter 15-4
- C++ Primer Chapter 15-6
- 《C++ primer 5》 chapter 1.2
- 《C++ primer 5》 chapter 1.3
- 《C++ primer 5》 chapter 1.4
- 《C++ primer 5》 chapter 2.1
- 《C++ primer 5》 chapter 2.2
- C++ Primer Chapter 10-5
- C++ Primer Chapter 13-5
- C++ Primer Chapter 14-5
- 自媒体时代如何营销?自媒体推广投放新趋势
- Leetcode OJ 69 Sqrt(x) [Easy]
- Using SecureString
- mysql 5.0存储过程学习总结 (经典)
- 类加载机制
- C++ Primer Chapter 15-5
- 经典算法书单
- 1006. Sign In and Sign Out (25)
- vue.js单击按钮获取手机验证码,倒计时禁用按钮功能效果
- 【转载】----tomcat7与tomcat8中文乱码的问题
- 死锁的4个必要条件和处理策略
- 关于Pos下开发的一点心得
- Speech Enhancement Generation Adversarial Network
- Vivo v7+印度发售,一直被吐槽,原来亮点是我们没找到!