//
.*Copyright(c) 2016.烟台大学计算机与控制工程学院
.*ALL rights reserved.
.*文件名称:main.cpp
.*作者:李鑫
.*完成日期:2016年6月20日
.*问题描述:阅读有关虚函数的程序,写出运行结果。
.*//
#include<iostream>
using namespace std;
class A
{
int a;
public:
A():a(5) {}
virtual void print ()const
{
cout<<a;
}
};
class B:public A
{
char b;
public:
B()
{
b='E';
}
void print()const
{
cout<<b;
}
};
void show(A &x)
{
x.print();
}
int main()
{
A d1,*p;
B d2;
p=&d2;
d1.print();
d2.print();
p->print();
show(d1);
show(d2);
return 0;
}
运行结果:
总结:
在虚函数中当指向基类的指针指向派生类时,可以访问派生类,即执行派生类的函数,而普通函数即使指向派生类仍执行基类函数。