キリン類の動物類への継承(protected継承)

1595 ワード

01./*  
02.*             :  
03.* Copyright (c) 2011,            
04.* All rights reserved.  
05.*     :test.cpp  
06.*       :  
07.*     :2014  05  17     
08.*      :v1.0  
09.*              : 
10.*     :   
11.*     : 
12.*     : 
13.*     :  
14.*     :   
15.*/    


#include <iostream>
using namespace std;
class Animal
{
public:
    Animal() {}
    void eat()
    {
        cout << "eat
"; } protected: void play() { cout << "play
"; } private: void drink() { cout << "drink
"; } }; class Giraffe: protected Animal { public: Giraffe() {} void StrechNeck() { cout << "Strech neck
"; } void take() { eat(); // , , _______________ drink(); // , , ________________ play(); // , , ________________ } }; int main() { Giraffe gir; gir.eat(); // , ,Giraffe _______________ gir.play(); // _ , ,Giraffe _______________ gir.drink(); // , ,Giraffe ________________ return 0; }

共有継承の下で、ベースクラスの共有メンバーはアクセスでき、プライベートメンバーはアクセスできません.保護メンバーは派生クラス内でアクセスでき、クラス外でアクセスできません.
プライベート継承では、ベースクラスの共有メンバーはアクセスできます.プライベートメンバーはアクセスできません.保護メンバーは派生クラス内でアクセスできます.クラス外ではアクセスできませんが、派生クラスのメンバーはクラス外では呼び出せません.
保護継承の下で、ベースクラスの共有メンバーはアクセスでき、プライベートメンバーはアクセスできません.保護メンバーは派生クラス内でアクセスできます.クラス外ではアクセスできませんが、派生クラスのメンバーはクラス外では呼び出せません.