纯虚函数小记
2015-11-30 21:49
211 查看
#include <iostream> using namespace std; class a{ public: virtual void f()=0; }; void a::f(){//纯虚函数也可以被定义(虽然通常不这么做),只不过必须放在类的外部 cout<<"class a"; } class b:public a{ public: void f() override{ cout<<"class b"; } }; int main() { a a1;//出错,抽象基类(或抽象基类派生的并且没有重写纯虚函数的派生类)不能定义对象(不能实例化), //就算抽象基类定义了纯虚函数,也不行! b b1;//正确,抽象基类的派生类必须重写纯虚函数,才能定义对象 a* a2=&b1;//正确 b1.f(); cout<<endl; a2->f(); system("pause"); return 0; } //定义纯虚函数的目的在于,使派生类仅仅只是继承函数的接口。 //纯虚函数的意义,让所有的类对象(主要是派生类对象)都可以执行纯虚函数的动作,但类无法为纯虚函数提供一个合理的缺省实现。 //所以类纯虚函数的声明就是在告诉子类的设计者,“你必须提供一个纯虚函数的实现,但我不知道你会怎样实现它”。
相关文章推荐
- hadoop环境移植出现的bug解决
- 工业4.0
- 保存网页为图片——滚动截取IE(WebBrowse)
- 第六章----家庭作业与20135330合作
- 当优秀成为了一种习惯,坚持又算得了什么——英语总结
- 动态修改UINavigationBar的背景色
- 51nod 差和问题(树状数组+离散化 (Java))
- description The resource identified by this request is only capable of generating responses with cha
- 凹入表示法(C语言版)
- NodeJS学习笔记(一)——异步I/O的理解
- ngrok公网映射,及tunnle对ngrok的国内部署
- 习题4.58、6.32与20135324合作
- snprintf与sprintf的区别
- ssh中关于权限管理的设计技巧
- c文件操作
- 信息安全系统设计基础实验三报告
- 创建cacheManager 和 cache的几种方式
- 懒加载(get和Load)
- ffmpeg参数中文详细解释
- 千万级到10亿+的疯涨,搜狗商业平台服务化体系实践之路