第13周-多态性-项目0-课后实践·阅读程序1.

来源:互联网 发布:淘宝卖家千牛官方下载 编辑:程序博客网 时间:2024/05/14 07:24

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作    者:刘畅* 完成日期:2015 年 5  月  29 日 * 版 本 号:v1.0 * * 问题描述:阅读程序。* 输入描述:;* 程序输出::
(1)虚函数

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

运行结果:




(2)虚析构函数

#include <iostream>using namespace std;class BASE{private:    char c;public:    BASE(char n):c(n){}    virtual ~BASE(){cout<<c;}};class DERIVED:public BASE{private:    char c;public:    DERIVED(char n):BASE(n+1),c(n){}    ~DERIVED(){cout<<c;}};int main(){    DERIVED d('X');    return 0;}

运行结果:


(3)纯虚函数

#include <iostream>using namespace std;class Base{public:    virtual void Who() =0;};class FirstDerived:public Base{public:    void Who() {cout<<"F";}};class SecondDerived:public Base{    void Who() {cout<<"S";}};int main(){    FirstDerived first_obj;    SecondDerived second_obj;    Base &bref=first_obj;    bref.Who();    bref=second_obj;    bref.Who();    Base *bp;    bp=&first_obj;    bp->Who();    bp=&second_obj;    bp->Who();    return 0;}

运行结果:


0 0
原创粉丝点击