c++虚函数的学习
来源:互联网 发布:宝塔linux面板 编辑:程序博客网 时间:2024/06/06 04:54
1.虚函数
#include<iostream.h>class Base{public:void print(){cout<<"Base"<<endl;}};class Son:public Base{public:void print(){cout<<"Son"<<endl;}};void fun(Base *obj){obj->print();}int main(){Base base;Son son;fun(&base);fun(&son);return 0;}类Base和Son中都有print方法,Son继承Base类。在主函数中分别建立Base和Son的对象,在fun函数中调用对象的print()方法。运行结果如下
从结果中可以看出不论传的是父对象的地址还是子对象的地址,最终调用的都是父对象的print()方法。如果希望传父对象时调用父对象print()方法,传子对象时调用子对象的print()方法。则只需要将父类的print方法声明成虚函数就行。virtual void print(){}。
2.纯虚函数
(1)纯虚函数的定义
virtual 返回类型 函数名 (<参数>)=0;
#include<iostream.h>class Shape{public:virtual void show()=0;};class Circle:public Shape{public:void show(){cout<<"Circle"<<endl;}};class Rect:public Shape{public:void show(){cout<<"Rect"<<endl;}};void fun(Shape *shape){shape->show();}int main(){//Shape s;//纯虚函数的类不能创建对象Circle circle;Rect rect;fun(&circle);fun(&rect);return 0;}
有纯虚函数的类不能创建对象。在基类中只作方法的声明,具体的实现要由其子类来实现。
- C语言函数的学习
- C语言函数的学习
- Object-C 中的虚函数的学习记录
- 小白教你学习C++(4)虚函数的讲解
- 工作学习到的C函数
- 【C++】【学习笔记】【006】函数的重载
- C语言的学习笔记2-函数
- C++sort()函数的用法 及学习
- C++学习之旅——不可以修饰为虚函数的函数
- C/C++学习(10)关于数组、内联函数、虚函数的错题集锦
- ios开发-c语言之C语言函数的学习
- object-c学习:object-c的函数、块
- 学习笔记3-C++-虚函数
- [C学习]Main函数
- [C学习]函数(?)
- C函数指针学习
- C++:函数<学习笔记>
- C语言函数学习
- 从全局观思考
- SD 分区作为跟文件系统 启动Linux
- IOS之第一个IOS程序
- Java学习之道:[续]Spring学习笔记 -- 资源访问(Resource接口)
- hdu 4500 小Q系列故事――�丝的逆袭(检索)
- c++虚函数的学习
- HOJ1119/HDU1542 Atlantis HOJ1909/POJ1177 Picture
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 找出字符串中第一个只出现过一次的字符和位置
- mysql开发报错
- FAT文件系统学习
- django输出 hello world
- JSP+Servlet的简单示例
- Java学习之道:纯Hibernate使用-不用spring事务管理