C++多重继承Demo

#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  ---------- */
posted @ 2012-07-06 16:14  Leo Forest  阅读(267)  评论(0编辑  收藏  举报