长颈鹿类对动物类的继承(private)

来源:互联网 发布:ubuntu 编译安装php7 编辑:程序博客网 时间:2024/04/29 00:07
/** 程序的版权和版本声明部分* Copyright (c)2014, 烟台大学计算机学院学生* All rightsreserved.* 文件名称:a.cpp* 作    者:孔云* 完成日期:2014年5月17日* 版 本 号: 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.StrechNeck();//正确,私有继承下,派生类的公有成员在派生类外可被访问    gir.take();    //gir.eat();    // 错误,私有继承下,基类的公有成员不能在类外被访问,只能在类内可被访问    //gir.play();   // 错误,私有继承下,基类的受保护成员不能在类外被访问,只能在类内可被访问    //gir.drink();  // 错误,私有继承下,基类的私有成员不可访问(不论派生类外)    return 0;}


心得体会:私有基类的公用成员和保护成员在派生类中的访问属性相当于派生类中的私有成员,即派生类的成员函数能访问它们,不能在派生类外访问它们,私有基类的私有成员在派生类中成为不可访问的成员。奋斗

0 0