12周项目1--(2)private继承方式下

来源:互联网 发布:河南大学教务网络系统 编辑:程序博客网 时间:2024/06/10 04:45
/** 程序的版权和版本声明部分* Copyright (c)2014, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: array.cpp* 作    者:  刘江* 完成日期:2013年5月13日* 版本号: v1.0* 输入描述:无* 问题描述:*/#include <iostream>using namespace std;class Animal{public:    Animal() {}    void eat()    {        cout << "eat\n";    }protected:    void play()    {        cout << "play\n";    }private:    void drink()    {        cout << "drink\n";    }};class Giraffe: private Animal{public:    Giraffe() {}    void StrechNeck()    {        cout << "Strech neck \n";    }    void take()    {        eat();     // 正确,在私有继承中,基类的公有成员可见        //drink();   // 错误,在私有继承中,基类的私有成员不可见        play();    // 正确,在私有继承中,基类的受保护成员可见    }};int main(){    Giraffe gir;    //gir.eat();    // 错误,在私有继承中,派生类的继承基类中的成员(不论属性)不可见    //gir.play();   // 错误,在私有继承中,派生类的继承基类中的成员(不论属性)不可见    //gir.drink();  // 错误,在私有继承中,派生类的继承基类中的成员(不论属性)不可见    gir.StrechNeck();  //正确,在私有继承中,派生类中的公有成员可见    return 0;}


运行结果;

心得体会;对于私有继承,基类中的公有的,受保护的成员,在派生类中都变成私有的,派生类中新声明的公有的,受保护的成员在类外可以访问。基类中的所有成员不能通过派生类访问。

0 0
原创粉丝点击