(十五)面向对象程序设计
来源:互联网 发布:单片机编程题 编辑:程序博客网 时间:2024/04/30 10:31
显示改写虚函数,override在形参列表后面,有const的在const的后面,在最后
动态绑定:当使用基类的引用(或指针)调用一个虚函数时将发生动态绑定.
析构函数应该被定义成虚析构函数,当遇到一个类A的指针,如果是虚析构函数,那么会调用具体类的析构函数(并逐层向上调用析构函数),否则会调用类A的析构函数,可能会造成释放不正确.析构函数都会调用上层基类的析构函数.
其实虚函数造增加了耦合,并非是一个好的决策,应该尽量的设计成不需要虚函数,每个类只管自己的那一部分.
访问控制:是程序员的自我限制,目的是为了减少失误的错误,而非限制编程的能力.
派生类列表:首先是一个冒号,之后以逗号分隔的基类列表,每个基类列表都可以有相应的访问控制说明符.此访问控制并非限制本类的访问权限,而是限制外部调用本来时可访问的基类权限,即派生类把基类加为自己的成员,访问控制为对应的说明符.
派生类会执行基类的构造函数,如果没有显示构造则会调用默认构造函数.首先执行基类的初始化,然后执行基类的构造函数体,然后执行自己的初始化,最后执行自己的函数体.
final:防止被继承,在类名后面加final;防止虚函数被覆盖,可在形参后面加 final
虚函数的默认实参由本次调用的静态类型决定,因为是编译时确定.
派生类如果私有继承基类,那么派生类的地址不能赋值给基类,包括引用.因为基类部分是私有的.
派生类可以改变继承基类的部分成员访问控制,使用using
private:
using base::size;
如果派生类需要移动函数,拷贝函数等,则基类必须实现,因为基类部分也需要实现整体才有.
继承的构造函数,编译器生成一个与之对应的派生类构造函数
class tc :public base{ public: using base::base; //编译器将生成构造函数形如: //tc(parms) :base(args){}}
默认实参不会被继承,派生类将获得多个继承的构造函数.
- (十五)面向对象程序设计
- PHP学习(十五)--PHP面向对象的程序设计
- javascript面向对象(十五)
- java学习 十五、面向对象
- C++面向对象程序设计
- 面向对象程序设计
- 面向对象程序设计总结
- 面向对象程序设计概念
- 面向对象的程序设计
- 面向对象程序设计
- C++面向对象程序设计
- 面向对象程序设计
- 面向对象程序设计思想
- 面向对象的程序设计
- 面向对象程序设计
- 面向对象程序设计原则
- 面向对象/过程程序设计
- 面向对象程序设计(二)
- RunTime.getRunTime().addShutdownHook用法
- CodeforcesRound#253(Div2) D Andrey and Problem
- Java中的for循环
- 对libevent+多线程服务器模型的C++封装类
- 改错题_114
- (十五)面向对象程序设计
- gdb+gdbserver远程调试技术
- Next Date 求下一天的日期
- Unity3D教程:实现基于Socket通讯的公共聊天室 .
- iss 防火墙
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第11章 认识与学习 bash
- Unity 4.x 2D游戏开发基础教程大学霸第一更
- Gstreamer中添加x265编解码器
- TCP三次握手及四次挥手详细图解