程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++的私有繼承、公有繼承和保護繼承

C++的私有繼承、公有繼承和保護繼承

編輯:C++入門知識

[cpp] 
#include <iostream> 
 
using namespace std; 
 
class Animal 

    protected: 
        int test; 
    public: 
    Animal(){ test = 0; cout << "animal init...\n";} 
    void eat(){cout << "Animal eat..." << endl;} 
}; 
 
class Giraffe: private Animal 

    public: 
        Giraffe(){cout << "giraffe init...\n";} 
        void StrechNeck(double) 
        { 
            eat(); 
            cout << "test: "<<test << endl; 
            cout << "strech neck \n"<<endl; 
        } 
}; 
 
class Cat: public Animal 

    public: 
    Cat(){cout << "cat init...\n";} 
   // void eat(){cout << "cat eat ...\n";} 
    void Meaw(){ 
        eat(); 
        cout << "meaw\n";} 
}; 
 
void Func(Animal& an) 

    an.eat(); 

int main() 

    Cat dao; 
    Giraffe gir; 
    Func(dao); 
    dao.Meaw(); 
    cout << "==========================\n"; 
    gir.StrechNeck(12); 
   // Func(gir); 
    return 0; 

運行結果:

總結:
1. 不管是私有繼承還是公有繼承都無法訪問父類的私有成員;
2. 公有繼承的子類對象,可以直接訪問父類的protected和public的成員,就如同訪問自己的成員一樣;
3. 私有繼承的子類對象,不能直接訪問父類的任何成員;
4. 私有繼承的子類對象,如果想要訪問父類成員,只能通過子類的成員函數來訪問父類的成員,就如同父類成員函數訪問自己的成員(當然,父類的private成員無法訪問)。
5. 保護繼承與私有繼承類似,繼承之後的類相對於父類是獨立的;其類對象,在公開場合無法使用基類的成員,也只能通過自己的成員函數來訪問父類的protected和public成員。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved