#includevirtual 返回类型 函数名(参数列表):通常情况下只有返回类型 函数名 参数列表都相同的函数才能构成多态,除了这一种特殊的函数,返回类指针 类* 函数名(参数列表)using namespace std; class Animal { private: public: virtual void eat(void){cout<<"eat"< eat(); } void func2(Animal& p){不同的对象进来做不同的事,多态 p.eat(); } int main() { Pig pig; Dog dog; Mankind man; func2(pig); func2(dog); func2(man); return 0; }
#include糟糕,内存泄漏了using namespace std; class Animal { private: public: virtual Animal* eat(void) { cout << "Animal eat" << endl; return this; } }; class Mankind : public Animal { private: public: Mankind* eat(void) { cout << "man eat rice" << endl; return this; } }; int main() { Animal a; a.eat(); Mankind man; Animal* p = &man; p->eat(); return 0; }
#includeusing namespace std; class Animal { private: public: Animal(){cout<<"构造Animal"< 虚析构函数概念的引入 #includeusing namespace std; class Animal { private: public: Animal(){cout<<"构造Animal"< 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)