第13周 阅读程序,写出运行结果。(1)虚函数

来源:互联网 发布:阿里云os手机好用吗 编辑:程序博客网 时间:2024/04/28 08:19


//
2.*Copyright(c) 2016.烟台大学计算机与控制工程学院
3.*ALL rights  reserved.
4.*文件名称:main.cpp
5.*作者:孙亚茹
6.*完成日期:2016年5月27日
7.*问题描述:阅读有关虚函数的程序,写出运行结果。
8.*//

#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;}


运行过程:

                   执行d1.print(),输出5

                   执行 d2.print(),输出E

                    执行p->print(),输出E

                    执行show(d1),输出5

                    执行show(d2),输出E

                    所以结果为:5EE5E

总结:

        在虚函数中当指向基类的指针指向派生类时,可以访问派生类,即执行派生类的函数,而普通函数即使指向派生类仍执行基类函数。

0 0
原创粉丝点击