zoukankan      html  css  js  c++  java
  • 关于多态代码和运行结果

    #include <iostream>
    #pragma hdrstop
    using std::cout;
    using std::endl;
    //---------------------------------------------------------------------------
    #pragma argsused
    //---------------------------------------------------------------------------
    class Base {
    public:
    	Base() { };
    	virtual void DisplayMessage() {
    		cout << "Displaying Message from an object of Base class" << endl;
    	};
    };
    //---------------------------------------------------------------------------
    class DerivedFirst : public Base {
    public:
    	DerivedFirst() { };
    	void DisplayMessage() {
    		cout << "Displaying Message from an object of DerivedFirst class" << endl;
    	}
    };
    //---------------------------------------------------------------------------
    class DerivedSecond : public Base {
    public:
    	DerivedSecond() { };
    	void DisplayMessage() {
    		cout << "Displaying Message from an object of DerivedSecond class" << endl;
    	}
    };
    //---------------------------------------------------------------------------
    class DerivedThird : public Base {
    public:
    	DerivedThird() { };
    };
    //---------------------------------------------------------------------------
    int main()
    {
    	// create a base class object
    	Base* bc = new Base();
    	bc->DisplayMessage();
    	// delete the base class object and assign it to DerivedFirst object
    	delete bc;
    	bc = new DerivedFirst();
    	bc->DisplayMessage();
    	// delete the base class object and assign it to DerivedSecond object
    	delete bc;
    	bc = new DerivedSecond();
    	bc->DisplayMessage();
    	// delete the base class object and assign it to DerivedThird object
    	delete bc;
    	bc = new DerivedThird();
    	bc->DisplayMessage();
    	delete bc;
    	return EXIT_SUCCESS;
    }
    //---------------------------------------------------------------------------
    

    函数主要作用:用基类声明的指针(Base* bc),指向派生类,如果派生类中有与基类中相同的方面就调用子类的方法,如果子类没有该方面,就调用基类自身的方法。
    基类中如果不加virtual 关键字,用用基类声明的指针,调用函数时只能调用基类自身的函数。

  • 相关阅读:
    ensp抓包只有蓝色的点闪烁没有跳出wireshark
    QuartusII 13.1编译通过,波形仿真报错Error: near "/": syntax error, unexpected '/', expecting ')'
    安装Multisim时出现No software will be installed or removed无法安装
    JavaScript实现页面实时显示时间
    css图片覆盖文字 点击显示文字
    php魔术方法——属性重载方法
    php魔术方法——构造函数和析构函数
    将含有父ID的列表转成树
    分割gbk中文出现乱码的问题解决
    json_encode如何防止汉字转义成unicode
  • 原文地址:https://www.cnblogs.com/zhangdongsheng/p/2010237.html
Copyright © 2011-2022 走看看