虚函数是一个希望在派生类中重新定义的函数,在基类中用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;
}
程序运行结果: