第十二周项目1-public继承下的访问权限和继承方式

来源:互联网 发布:降温软件排行第一 编辑:程序博客网 时间:2024/05/19 02:00
/*Copyright (c) 2011, 烟台大学计算机学院* All rights reserved.* 作    者: 石尧* 完成日期:2014 年04 月 08日* 版 本 号:v1.0** 问题描述:public继承下的访问权限和继承方式。* 样例输入:略.* 样例输出:略。* 问题分析:略。*/#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: public Animal   //长颈鹿类{public:    Giraffe() {}    void StrechNeck()    {        cout << "Strech neck \n";    }private:    void take()    {        eat();        // 正确,公有继承下,基类的公有成员对派生类可见        drink();      // 正确,公有继承下,基类的保护成员在派生类内可见        play();       // 不正确,公有继承下,基类中私有的成员是不被调用的    }};int main(){    Giraffe gir;      //定义派生类的对象    gir.eat();        // 正确,公有继承下,基类的公有成员对派生类对象可见    gir.play();       // 不正确,公有继承下受保护的成员不能调用    gir.drink();      // 不正确,公有继承下私有的成员不能调用    gir.take();       // 不正确,公有继承下派生类中的私有成员不能调用    gir.StrechNeck(); // 正确,公有继承下派生类中的公有成员能调用    Animal ani;    ani.eat();        // 正确,可以调用基类的公共成员    ani.play();       // 错误,受保护成员不能调用    ani.drink();      // 错误,私有成员不能调用    ani.take();       //错误,派生类的成员对基类对象(不论访问属性)不可见    ani.StrechNeck(); // 错误,派生类的成员对基类对象(不论访问属性)不可见    return 0;}

0 0
原创粉丝点击