#include <iostream> class A { private: char data; public: A(){data = 'A';}; virtual void Show() { std::cout << data << std::endl; }; virtual void Display() { std::cout << 'A' << std::endl; } }; class B { private: char data; public: B(){data = 'B';}; virtual void Show() { std::cout << data << std::endl; }; virtual void Display() { std::cout << 'B' << std::endl; } }; class C { private: char data; public: C(){data = 'C';}; void Print() { std::cout << "this is class C printing" << std::endl; }; }; class D: public A, public B, public C { private: char data; public: D(){data = 'D';}; virtual void Show() { std::cout << data << std::endl; }; virtual void Display() { std::cout << 'D' << std::endl; }; }; int main ( int argc, char *argv[] ) { D *d = new D; A *a = (A*)d; B *b = (B*)d; d->Show(); d->Print(); a->Show(); b->Show(); d->Display(); a->Display(); b->Display(); return 0; } /* ---------- end of function main ---------- */
转载于:https://www.cnblogs.com/Leo-Forest/archive/2012/07/06/2579633.html