#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