12 周 长颈鹿类对动物类的继承 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();     // 正确,私有继承下,基类的公有类成员函数对派生类对象可见_____
        //drink(); // 错误,私有继承下,基类的私有类成员函数对派生类对象不可见_____
        play();    // 正确,私有继承下,基类的受保护类成员函数对派生类对象可见_____
    }
};
int main()
{
    Giraffe gir;
    //gir.eat();    // 错误,私有继承下,Giraffe的对象类外不能访问Animal中的成员____
    //gir.play();   // 错误,私有继承下,Giraffe的对象类外不能访问Animal中的成员____
    //gir.drink();  // 错误,私有继承下,Giraffe的对象类外不能访问Animal中的成员____
    return 0;
}

感悟:私有继承下,基类的公有类成员函数对派生类对象可见

私有继承下,基类的私有类成员函数对派生类对象不可见

私有继承下,基类的受保护类成员函数对派生类对象可见

12 周 长颈鹿类对动物类的继承 private继承方式下

时间: 2024-10-13 15:10:13

12 周 长颈鹿类对动物类的继承 private继承方式下的相关文章

12周 长颈鹿类对动物类的继承 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";

第12周 项目三-日期时间类

定义一个日期类Date,数据成员包括年.月.日,SetDate(int y,int m,int d)和PrintDate()函数分别用于设置日期和显示日期:再定义一个时间类Time,数据成员包括时.分.秒,SetTime(int h,int m,int s)和PrintTime()函数分别用于设置时间和显示时间,在此基础上再定义一个日期时间类TimeDate,充分利用已有的两个类中提供的方法,实现日期和时间的设置和显示.请实现类TimeDate,下面是用于测试的主函数及参考运行结果. int m

2013级C++第12周(春)项目——成员的訪问属性、多重继承

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 第一部分 程序阅读 1.阅读程序.分析类中成员的訪问属性 #include <iostream> using namespace std; class A //A为基类 { public: void f1( ); int i; protected: void f2(); int j; private: int k; }; class B: p

继承、派生、新式类与经典类

目录 继承 1.什么是继承? 2.为什么要继承? 3.如何实现继承? 寻找继承关系 继承背景下对象属性的查找顺序 派生 什么是派生? 子类派生出新的属性,并重用父类的属性 新式类与经典类 钻石继承(菱形继承) 通过继承实现修改json模块数据类型 继承 Downwards is the only way forwards .--<盗梦空间> 面向对象阶段最重要的知识点:继承.封装.多态 1.什么是继承? 指新建类的方法,新建的类称之为子类或者派生类,子类继承的类叫做父类,也称之为基类或者超类.

虚基类练习:动物(利用虚基类建立一个类的多重继承,包括动物(animal,属性有体长,体重和性别),陆生动物(ter_animal,属性增加了奔跑速度),水生动物(aqu_animal,属性增加了游泳速度)和两栖动物(amp_animal)。)

Description 长期的物种进化使两栖动物既能活跃在陆地上,又能游动于水中.利用虚基类建立一个类的多重继承,包括动物(animal,属性有体长,体重和性别),陆生动物(ter_animal,属性增加了奔跑速度),水生动物(aqu_animal,属性增加了游泳速度)和两栖动物(amp_animal).其中两栖动物保留了陆生动物和水生动物的属性. Input 两栖动物的体长,体重,性别,游泳速度,奔跑速度(running_speed) Output 初始化的两栖动物的体长,体重,性别,游泳速度

虚基类练习 动物2

/*长期的物种进化使自然界出现了生活在陆地上的陆生动物和生活在水中的水生动物. 依据已有主函数编写动物类,陆生动物类和水生动物类. Input 动物的体长,体重,性别: 水生动物的体长,体重.性别.游泳速度: 陆生动物的体长,体重,性别,奔跑速度: Output 动物的体长,体重.性别: 水生动物的体长.体重,性别.游泳速度: 陆生动物的体长,体重,性别.奔跑速度: */ #include <iostream> using namespace std; class animal { prote

虚基类练习 动物1

/*长期的物种进化使两栖动物既能活跃在陆地上,又能游动于水中. 利用虚基类建立一个类的多重继承,包括动物(animal,属性有体长,体重和性别), 陆生动物(ter_animal,属性增加了奔跑速度),水生动物(aqu_animal, 属性增加了游泳速度)和两栖动物(amp_animal).其中两栖动物保留了陆生动物和水生动物的属性. Input 两栖动物的体长,体重,性别,游泳速度,奔跑速度(running_speed) Output 初始化的两栖动物的体长,体重,性别,游泳速度,奔跑速度(r

第十一周(点类派生直线类)

/* *copyright(c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:第十一周(点类派生直线类) *作者:王忠 *完成日期:2015.5.20 *版本号:v1.0 * *问题描述:定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. *输入描述: *程序输出: #include<iostream> #include<Cmath> using name

17周 oj 比較大小 类模板

/*声明一个类模板,利用它分别实现两个整数. 浮点数和字符的比較,求出大数和小数. 说明:在类模板外定义各成员函数. 输入两个整数.两个浮点数和两个字符 从大到小输出两个整数.两个浮点数和两个字符 */ #include <iostream> #include <iomanip> using namespace std; template<class numtype> class Compare { public: Compare(numtype a,numtype b