如:
class parent{ public: void drink(){ cout<<"parent drink()"<<endl; } }; class child:public parent{ public: void drink(){ cout<<"child drink()"<<endl; } };使用基类指针指向子类对象调用drink函数,调用的是基类的drink函数;
如:
class parent{ public: virtual void drink(){ cout<<"parent drink()"<<endl; } }; class child:public parent{ public: virtual void drink(){ cout<<"child drink()"<<endl; } };使用基类指针指向子类对象调用drink函数,调用的是子类的drink函数;
如:
class parent{ public: void drink(int i,int j){ cout<<"parent drink(int)"<<endl; } }; class child:public parent{ public: void drink(char c){ cout<<"child drink(char)"<<endl; } };使用基类指针或引用指向子类对象调用drink函数,此时无法调用子类的void drink(char)函数。因为是父类
如:
class parent{ public: virtual void drink(int i,int j){ cout<<"parent drink(int)"<<endl; } }; class child:public parent{ public: virtual void drink(char c){ cout<<"child drink(char)"<<endl; } };
使用基类指针或引用指向子类对象调用drink函数,此时无法调用子类的void drink(char)函数。原因同上。
使用子类指针或引用指向子类对象调用drink函数,此时无法调用父类的void drink(int,int)函数。