C++ 之 虚函数、纯虚函数
2014-08-11 09:33
176 查看
在Java语言中,如果类B继承类A,在A中有一个void say()方法,则在B中直接重写void say()方法即可覆写此方法。但在C++中,如果要覆写父类的一个函数,父类需将此方法定义为虚函数。
请看下面例子:
输出结果为:
hello people.
修改一下people类,其他代码不变。
输出结果为:
hello man.hello man.
纯虚函数,跟Java中的抽象函数使用差不多。
结果为:
hello man.
hear man.
请看下面例子:
#include <iostream> #include <cstdio> class people{ public: void say(){ printf("hello people.\n"); } }; class man:public people{ public: void say(){ printf("hello man.\n"); } }; int main(){ people * p = new man(); p->say(); system("pause"); return 0; }
输出结果为:
hello people.
修改一下people类,其他代码不变。
class people{ public: virtual void say(){ //定义为虚函数 printf("hello people.\n"); } };
输出结果为:
hello man.hello man.
纯虚函数,跟Java中的抽象函数使用差不多。
#include <iostream> #include <cstdio> class people{ public: virtual void say(){ //定义为虚函数 printf("hello people.\n"); } virtual void hear() = 0; //纯虚函数,子类必须重写这个函数 }; class man:public people{ public: void say(){ printf("hello man.\n"); } virtual void hear(){ //重写父类的纯虚函数 printf("hear man.\n"); } }; int main(){ people * p = new man(); p->say(); p->hear(); system("pause"); return 0; }
结果为:
hello man.
hear man.
相关文章推荐
- c++中抽象类、虚函数和纯虚函数的学习
- C++ 虚函数和纯虚函数用法
- 【C/C++学习】之八、虚函数与纯虚函数
- C++ 虚函数和纯虚函数
- C++虚继承、虚基类、虚函数与纯虚函数的概念和引用
- c++中抽象类、虚函数和纯虚函数的学习以及和Java的对比
- c++ 虚函数 纯虚函数 抽象类
- C++多态性基本概念 包括虚函数和纯虚函数
- C++虚继承,虚基类、虚函数与纯虚函数的概念和引用(待补充)
- C++继承、虚函数、纯虚函数、多态、覆盖、重载、隐藏、引用等常用概念
- C++——虚函数与纯虚函数
- C++的虚基类,抽象类,虚函数,纯虚函数,virtual
- C++ 虚函数与纯虚函数
- C++ 虚函数 纯虚函数
- 多态,虚函数,纯虚函数,抽象类的相关问题(c++面试常见题目)
- 搞清楚C++继承、多态、虚函数、纯虚函数
- C++、JAVA与C#中的多态虚函数、纯虚函数(抽象函数)
- C++的虚基类,抽象类,虚函数,纯虚函数,virtual
- C++之——虚函数与纯虚函数的用法
- C++ 虚基类、虚函数、纯虚函数、抽象类