虚函数、纯虚函数
来源:互联网 发布:数据库中各表的结构 编辑:程序博客网 时间:2024/05/19 15:26
对于纯虚函数:当派生类继承了基类的时候,如果派生类中没有写基类中的虚函数,则编译的时候不会出现什么错误,但是当写了基类中的虚函数的时候,却没有使用,则在编译过程中会出现一些链接方面的错误。
对于虚函数:当派生类继承了基类的时候,只要用派生类的对象来初始化基类就可以调用派生类里面的函数。
纯虚函数和虚函数的区别:区别体现在定义的时候,如果是纯虚函数,则在定义的时候对纯虚函数不会有什么实现,但是虚函数会在内部有所实现。
例如:虚函数:virtual int add(void) { a+b;}
纯虚函数:virtual int add();
下面是转载文章,原文作者申明如下:
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/961418
疑问:什么情况下必须用虚析构?
- #include <iostream>
- class A
- {
- public:
- A(){};
- ~A()
- {
- std::cout << "~A" << std::endl;
- };
- private:
- int a;
- };
- class B : public A
- {
- public:
- B(){};
- ~B()
- {
- std::cout << "~B" << std::endl;
- }
- private:
- int b;
- };
- int main()
- {
- B b;
- return 0;
- }
- int main()
- {
- A *pb = new B();
- delete pb;
- return 0;
- }
- int main()
- {
- A * pa = new B();
- delete pa;
- return 0;
- }
- class A
- {
- public:
- A(){};
- ~A()
- {
- std::cout << "~A" << std::endl;
- };
- void test()
- {
- std::cout << "~test" << std::endl;
- }
- private:
- int a;
- };
- int main()
- {
- std::cout << sizeof(A) << std::endl;
- }
0 0
- 虚函数 纯虚函数
- 虚函数、纯虚函数
- 纯虚函数,虚函数
- 虚函数 纯虚函数
- 虚函数\纯虚函数
- 虚函数 纯虚函数
- 虚函数、纯虚函数
- 虚函数,纯虚函数
- 虚函数 纯虚函数
- 虚函数&纯虚函数
- 虚函数 纯虚函数
- 虚函数,纯虚函数
- 纯虚函数
- 纯虚函数
- (纯)虚函数意义
- 纯虚函数
- c++纯虚函数
- 纯虚函数(转)
- C语言可变长参数实现原理
- PL/SQL远程备份和恢复Oracle数据库
- 转:金庸笔下的良好代码风格
- 《大话设计模式》—— 读后感(8)雷锋依然在人间——工厂方法模式
- C++重载加号运算符实现两个结构体的相加
- 虚函数、纯虚函数
- 嵌入式linux flash分区配置 【转】
- 软件体系结构风格---基于事件的隐式调用
- Oracle 用户管理(二)
- POJ-2349 Arctic Network 最小生成树
- 嵌入式Linux学习规划
- Apache轻量级性能测试工具--ab
- Android开发遇到的问题
- OpenCV之图像平滑处理