#includeusing namespace std; class Animal//纯虚类,无法定义对象,但是可以定义指针 { private://纯虚类,不需要具体的实现 public://为所有子对象提供一个公共的接口 virtual void eat(void)=0;//纯虚函数无需实现,需要在子类中重写 virtual void sleep(void)=0;//=0的本质是指向函数的指针赋值为NULL }; class Mankind:public Animal { private: public: void eat(void){cout<<"eat rice"< eat(); p->sleep(); } void func2(Animal& p){//不同的对象进来做不同的事,多态 p.eat(); p.sleep(); } int main() { Animal a;//错误,纯虚类无法实例化对象 Pig pig; Dog dog; Mankind man; func1(&pig); func1(&dog); func1(&man); func2(pig); func2(dog); func2(man); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)