正在加载图片...
练习1 class Clock (public:Clock() virtual ~Clock(){cout<<"executing Clock destructor"<<endl;} →声明为虚析构函数 class DigitalClock:public Clock public: double *hour: DigitalClock((hour=new double; DigitalClock类析构函数 -DigitalClockO) delete hour: cout<<"executing DigitalClock destructor"<<endl;} int main(void) Clock *p=new DigitalClock; /∥用new开辟动态存储空间 deletep; 动态调用虚析构函数 executing DigitalClock destructor executing Clock destructor 人守 11/30 多态的优点 1. 应用程序不必为每一个派生类编写功能调用,只需要对抽 象基类进行处理即可。这一招叫“以不变应万变”,可以 大大提高程序的可复用性(这是接口设计的复用,而不是 代码实现的复用)。 2.派生类的功能可以被基类指针引用,这叫向后兼容,可以 提高程序的可扩充性和可维护性。以前写的程序可以被将 来写的程序调用不足为奇,但是将来写的程序可以被以前 写的程序调用那可了不起。 国上海大学 12/30 66 11/30 class Clock {public: Clock(){} ~Clock (){ cout<<“executing Clock destructor”<<endl; } }; class DigitalClock: public Clock {public: double *hour; DigitalClock(){hour=new double;} ~DigitalClock() { delete hour; cout<<“executing DigitalClock destructor”<<endl; } }; int main(void) { Clock *p = new DigitalClock; //用new开辟动态存储空间 delete p; return 0;} executing Clock destructor 声明为虚析构函数 DigitalClock类析构函数 executing DigitalClock destructor executing Clock destructor virtual ~ Clock() { cout<<“executing Clock destructor”<<endl; } 动态调用虚析构函数 练习1 12/30 多态的优点 1. 应用程序不必为每一个派生类编写功能调用,只需要对抽 象基类进行处理即可。这一招叫“以不变应万变”,可以 大大提高程序的可复用性(这是接口设计的复用,而不是 代码实现的复用)。 2. 派生类的功能可以被基类指针引用,这叫向后兼容,可以 提高程序的可扩充性和可维护性。以前写的程序可以被将 来写的程序调用不足为奇,但是将来写的程序可以被以前 写的程序调用那可了不起
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有