您好,登錄后才能下訂單哦!
多態性:向不同的對象發送同一個消息,不同的對象在接受時會產生不同的行為(即方法) #include <iostream> using namespace std; class B { public: void print() { cout << "B::print()" << endl; } virtual void show(); }; void B::show() { cout << "B::show()" << endl; } class D :public B { public: void print() { cout << "B::print()" << endl; } void show() { cout << "D::show()" << endl; } }; class E :public D { public: void show() { cout << "E::show()" << endl; } }; void fun(B *pb) { pb->show(); } int main() { D d; B b; E e; fun(&d); fun(&b); fun(&e); getchar(); return 0; }
最好把基類的析構函數聲明為虛函數 #include <iostream> using namespace std; class B { public: B() { cout << "B()" << endl; } virtual ~B() { cout << "~B()" << endl; } }; class D :public B { public: D() { cout << "D()" << endl; } ~D() { cout << "~D()" << endl; } }; int main() { //D d; B *pb = new D; delete pb; getchar(); return 0; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。