c++抽象类
来源:互联网 发布:linux指定dhcp服务器 编辑:程序博客网 时间:2024/04/29 15:10
抽象类
纯虚函数(pure virtual function)是指被标明为不具体实现 的虚拟成员函数。它用于这样的情况:定义一个基类时,会遇到无法 定义基类中虚函数的具体实现,其实现依赖于不同的派生类。定义 纯虚函数的一般格式为:
virtual 返回类型 函数名(参数表)=0;
含有纯虚函数的基类是不能用来定义对象的。纯虚函数没有实现 部分,不能产生对象,所以含有纯虚函数的类是抽象类。 定义纯虚函数必须注意:
1. 定义纯虚函数时,不能定义虚函数的实现部分。即使是函数体 为空也不可以,函数体为空就可以执行,只是什么也不做就返回。而 纯虚函数不能调用。
2. “=0”表明程序员将不定义该函数,函数声明是为派生类保留 一个位置。“=0”本质上是将指向函数体的指针定为NULL。
3. 在派生类中必须有重新定义的纯虚函数的函数体,这样的派生 类才能用来定义对象。
抽象类的使用要求
抽象类不能实例化
抽象类只作为基类被继承
可以定义指向抽象类的指针或引用
动态联编
联编是指计算机程序自身彼此关联的过程,是把一个标识 符名和一个存储地址联系在一起的过程,也就是把一条消息和 一个对象的操作相结合的过程。
如果使用基类指针或引用指明派生类对象并使用该指针 调用虚函数(成员选择符用箭头号“->”),则程序动态地 (运行时)选择该派生类的虚函数,称为动态联编。 动态联编(dynamic binding)亦称滞后联编 (late binding),对应于静态联编(static binding)。 如果使用对象名和点成员选择运算符“.”引用特定的 一个对象来调用虚函数,则被调用的虚函数是在编译时确定 的(称为静态联编)
纯虚函数(pure virtual function)是指被标明为不具体实现 的虚拟成员函数。它用于这样的情况:定义一个基类时,会遇到无法 定义基类中虚函数的具体实现,其实现依赖于不同的派生类。定义 纯虚函数的一般格式为:
virtual 返回类型 函数名(参数表)=0;
含有纯虚函数的基类是不能用来定义对象的。纯虚函数没有实现 部分,不能产生对象,所以含有纯虚函数的类是抽象类。 定义纯虚函数必须注意:
1. 定义纯虚函数时,不能定义虚函数的实现部分。即使是函数体 为空也不可以,函数体为空就可以执行,只是什么也不做就返回。而 纯虚函数不能调用。
2. “=0”表明程序员将不定义该函数,函数声明是为派生类保留 一个位置。“=0”本质上是将指向函数体的指针定为NULL。
3. 在派生类中必须有重新定义的纯虚函数的函数体,这样的派生 类才能用来定义对象。
抽象类的使用要求
抽象类不能实例化
抽象类只作为基类被继承
可以定义指向抽象类的指针或引用
动态联编
联编是指计算机程序自身彼此关联的过程,是把一个标识 符名和一个存储地址联系在一起的过程,也就是把一条消息和 一个对象的操作相结合的过程。
如果使用基类指针或引用指明派生类对象并使用该指针 调用虚函数(成员选择符用箭头号“->”),则程序动态地 (运行时)选择该派生类的虚函数,称为动态联编。 动态联编(dynamic binding)亦称滞后联编 (late binding),对应于静态联编(static binding)。 如果使用对象名和点成员选择运算符“.”引用特定的 一个对象来调用虚函数,则被调用的虚函数是在编译时确定 的(称为静态联编)
0 0
- 抽象类(C++)
- [c++]抽象类
- c+-----------------------------抽象类
- C#_抽象类和抽象方法
- C#:抽象类的学习
- 数据抽象----类(c++)
- C#----接口与抽象类
- C#---抽象类与接口
- C#:超基础 抽象类
- 【C#】抽象类和接口
- 【C++】接口(抽象类)
- 转:C++ C#抽象类
- C#:抽象
- C#==>抽象类和抽象函数
- C#--抽象类、抽象方法、多态机制
- C#:抽象类PK密封类
- 抽象类和接口(C#)的区别
- c#接口与抽象类的区别
- Linux命令:tar
- linux下的tomcat jvm内存
- SCUT重组赛第一场_Fibonacci_预处理
- 生产者消费者问题
- 2014年大学专业就业前景分析 -【计算机科学与技术专业】
- c++抽象类
- 一句话来防止查询记录重复
- Sublime Text 3相关配置和设置
- 工作流模式与K2实现(上篇)
- 配置Ubuntu Server高速apt-get源
- 剑指offer 4.3 举例形象化问题5-二叉树中和为某一值的路径
- Linux命令:gzip
- 【JAVA基础】⑥关于JAVA高级编程
- poj2234