c++ 继承

来源:互联网 发布:java堆排序 编辑:程序博客网 时间:2024/06/01 21:40

class Animal
{
        public:
                Animal(){}
        void eat()
        {
                cout<<"eat\n";
        }
};

class Giraffer : private Animal
{
        public:
                Giraffer(){}
        void StrechNeck(double)
        {
                cout<<"strechneck \n";
        }
};

class Cat : public Animal
{
        public:
                Cat(){}
        void Meaw()
        {
                cout<<"meaw\n";
        }
};

void Func(Animal &an)
{
        an.eat();
}

void test5()
{
        Cat dao;
        Giraffer gir;
        Func(dao);
        Func(gir); //error 

}

class Animal
{
        public:
                Animal(){}
        void eat()
        {
                cout<<"eat\n";
        }
};

class Giraffer : private Animal
{
        public:
                Giraffer(){}
        void StrechNeck(double)
        {
                cout<<"strechneck \n";
        }
        void take()
        {
                eat();
        }
};

class Cat : public Animal
{
        public:
                Cat(){}
        void Meaw()
        {
                cout<<"meaw\n";
        }
};

void Func(Giraffer &an)
{
        an.take();
}

void test5()
{
        Cat dao;
        Giraffer gir;
        Func(gir);

}

class Animal
{
        public:
                Animal(){}
        void eat()
        {
                cout<<"eat\n";
        }
};

//保护继承

class Giraffer : protected Animal
{
        public:
                Giraffer(){}
        void StrechNeck(double i=0.0)
        {
                cout<<"strechneck \n";
        }
        void take()
        {
                eat();
        }
};

class Cat : public Animal
{
        public:
                Cat(){}
        void Meaw()
        {
                cout<<"meaw\n";
        }
};

void Func(Giraffer &an)
{
        an.take();
}

void test5()
{
        Giraffer gir;
        //gir.eat();
        gir.take();
        gir.StrechNeck();
}

 

class Parent
{
        public:
                Parent(int var = -1)
                {
                        m_nPub = var;
                        m_nPtd = var;
                        m_nPrt = var;
                }
        public:
                int m_nPub;
        protected:
                int m_nPtd;
        private:
                int m_nPrt;
};

class Child1:public Parent
{
        public:
                int GetPub()
                {
                        return m_nPub;
                }
                int GetPtd()
                {
                        return m_nPtd;
                }
                /*
                int GetPrt()
                {
                        return m_nPrt;
                }
                */
};

class Child2:protected Parent
{
        public:
                int GetPub()
                {
                        return m_nPub;
                }
                int GetPtd()
                {
                        return m_nPtd;
                }
                /*
                int GetPrt()
                {
                        return m_nPrt;
                }
                */
};

class Child3:private Parent
{
        public:
                int GetPub()
                {
                        return m_nPub;
                }
                int GetPtd()
                {
                        return m_nPtd;
                }
                /*
                int GetPrt()
                {
                        return m_nPrt;
                }
                */
};

void test()
{
        Child1 cd1;
        Child2 cd2;
        Child3 cd3;

        int nVar = 0;

        //public inherited
        cd1.m_nPub = nVar;
        //cd1.m_nPtd = nVar;
        nVar = cd1.GetPtd();

        //protected inherited

        //cd2.m_nPub = nVar;
        nVar = cd2.GetPtd();

        //private inherited
        //cd3.m_nPub = nVar;
        nVar = cd3.GetPtd();
}

 

 

 

 

 

 

 

0 0
原创粉丝点击