wordÍêÃÀ¸ñʽ
}
(1)Êä³ö½á¹ûΪ: Instrument::Print Instrument::Print (2)Êä³ö½á¹ûΪ: Guitar::Print Piano::Print 10¡¢ ¶ÔÐ麯ÊýʹÓöÔÏóÖ¸Õë»òÒýÓõ÷ÓÃ,ϵͳʹÓÃ__¶¯Ì¬__Áª±à:ʹÓöÔÏóµ÷ÓÃʱ,ϵͳʹÓÃ__¾²Ì¬__Áª±à¡£
11¡¢ ½«ÏÂÁгÌÐò²¹³äÍêÕû¡£ #include
public:
convert(double I){va11=I;}
____ virtual void compute()=0; ____ protected: double val1; double va12: };
//liters to gallons
class l_to_g:public convert {
public:
__ l_to_g(double I):convert(I){} ____ void compute() {
va12=va11/3.7854;
cout< //Fahrenheit to Celsius class f_to_c:public convert { public: f_to_c(double I):convert(I){} void& compute() { va12=(va11-32)*5/9; cout< ¾«ÐÄÕûÀí ѧϰ°ïÊÖ wordÍêÃÀ¸ñʽ void fun(__convert& f____) { f.compute(); } void main() { l_to_g lgobj(4); f_to_c fcobj(70); fun(lgobj); fun(fcobj); } 12¡¢ ÏÂÁгÌÐòµÄÔËÐнá¹ûÈçÏÂ: Derive1's Print() called. Derive2's Print() caIIed. ¸ù¾Ý½á¹û½«³ÌÐò²¹³äÍêÕû¡£ #include public: Base(int I){b=I;} __ virtual Print()=0; ____ protected: int b; } class Derive1:public Base { public: __ Derive1(int& I):Base(I){} ___ void Print() { cout<<\ } }; class Derive2:public Base { public: Derive2(int I):Base(I){} void Print(){cout<<¡°Derive2¡¯s Print() called.¡±< void fun(__Base *obj ____) { obj->Print(); }; ¾«ÐÄÕûÀí ѧϰ°ïÊÖ wordÍêÃÀ¸ñʽ void main() { Derive1 *d1=new Derive1(1); Derive2 *d2=new Derive2(2); fun(d1); fun(d2); } 13¡¢ ÔÚÒ»¸ö³ÉÔ±º¯ÊýÄÚµ÷ÓÃÒ»¸öÐ麯Êýʱ,¶Ô¸ÃÐ麯ÊýµÄµ÷ÓýøÐÐ_¶¯Ì¬__Áª±à¡£ 14¡¢ ´øÓÐ__´¿Ð麯Êý__µÄÀà³ÆÎª³éÏóÀà,ËüÖ»ÄÜ×÷Ϊ__»ùÀà__À´Ê¹Óᣠ4.3¼ò´ðÌâ A¡¢³ÉÔ±º¯ÊýÖØÔØÓëÐ麯ÊýµÄÇø±ð B¡¢¾²Ì¬Áª±àºÍ¶¯Ì¬Áª±àµÄº¬Òå C¡¢´¿Ð麯ÊýºÍ³éÏóÀàµÄ¶¨Òå¼°Æä¹ØÏµ D¡¢³éÏóÀàµÄÌØµã 4.4¶Á³ÌÐòÌâ 1¡¢Ð´³öÏÂÁгÌÐòµÄÔËÐнá¹û¡£ #include public: Base(int i){x=i;cout<<\ virtual ~Base(){cout<<\private: int x; }; class Derived :public Base { public: Derived(int i,int j):Base(i){y=j;cout<<\ ~Derived(){cout<<\private: int y; }; void main() { Base *b1=new Base(15); delete b1; Base *b2=new Derived(20,25); delete b2; ¾«ÐÄÕûÀí ѧϰ°ïÊÖ wordÍêÃÀ¸ñʽ } ´ð°¸ Base:15 ~Base:15 Base:20 Derived:25 ~Derived:25 ~Base:20 2¡¢ ÔĶÁÏÂÁгÌÐò,»Ø´ðºóÃæÌá³öµÄÎÊÌâ¡£ #include public: Base():x(0),y(0){} Base(int I,int j):x(I),y(j){} int GetX() const{return x;} int GetY() const{return y;} virtual void Print() const{cout<<\ virtual ~Base(){Print();} private: int x,y; }; class Derived :public Base { public: Derived():z(0){} Derived(int I,int j,int k):Base(I,j),z(k){} void Print() const {cout<<\ ~Derived(){Print();} private: int z; }; void main() { Base *d1=new Derived; d1->Print(); Base *d2=new Derived(10,20,30); d2->Print(); delete d2; delete d1; } ¾«ÐÄÕûÀí ѧϰ°ïÊÖ