虚函数是一个希望在派生类中重新定义的函数,在基类中用VIRTUAL关键字声明。在派生类中可以重新定义虚函数。派生类中的虚函数可以不用VIRTUAL关键字声明。任何子类中的函数都默认都是虚函数。
派生类中声明的函数必须和基类中的函数有相同的函数原型,参数个数、参数类型和返回值类型都必须一致。
使用基类的指针对象或引用,就可以调用虚函数和派生的子函数。
(在程序中应用cout/cin语句必需声明:#include"iostream.h"头文件)
程序执行如下:
// TestVirtualClass2.cpp : Defines the entry point for the console application.//
#include "stdafx.h"#include"iostream.h"class A{public: virtual void outnews(int n){ cout<<"基类A中输出的数:"<<n<<"/n"; } virtual void outnews2(int n){ cout<<"基类A中输出的数:"<<n<<"/n"; }};class B:public A{public: void outnews(int n){ cout<<"子类B中输出的数:"<<n<<"/n"; }};
int main(int argc, char* argv[]){ B objb; A obja,*a_ptr; a_ptr=&obja; a_ptr->outnews(100); //调用基类OUTNEWS函数 a_ptr=&objb; a_ptr->outnews(100); //调用子类OUTNEWS函数 a_ptr->outnews2(200); //调用基类OUTNEWS函数
return 0;}程序运行结果:
