第十二周 项目一 长颈鹿对动物类的继承(2)

本文通过一个C++程序示例介绍了私有继承的概念及其使用。示例中定义了一个动物基类`Animal`和一个长颈鹿派生类`Giraffe`,展示了在私有继承下基类成员在派生类中的访问特性。
01..*程序的版权和版本声明部分:     
02.03.03.03.*Copyright(c)2013,烟台大学计算机学院学生     
03.04.04.04.*All rights reserved.     
04.05.05.05.*文件名称:     
05.06.06.06.*作者: 董倩    
06.07.07.07.*完成日期:2014年5月12日     
07.08.08.08.*版本号:v0.1     
08.09.09.09.*对任务及求解方法的描述部分:     
09.10.10.10.*输入描述:无     
10.11.11.11.*问题描述:    
11.12.12.12.*程序输入:     
12.13.13.13.*程序输出:     
13.14.14.14.*问题分析:     
14.15.15.15.*算法设计:     
15.16.16.16.*/ 
//private继承方式下
#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();     // 正确;在私有继承下,基类对派生类的public可见
        drink();   // 错误,私有继承下,基类中的私有成员在派生类中的访问属性为不可访问
        play();    //  正确,私有继承下,基类中的受保护成员在派生类中的访问属性为私有,在派生类内部可见
};
int main()
{
    Giraffe gir;
    gir.eat();    // 错误;Giraffe类的对象不能访问本类中的私有成员
    gir.play();   // 错误;Giraffe类的对象不能访问本类中的私有成员
    gir.drink();  // 错误;Giraffe类的对象不能访问本类中的私有成员
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值