c++中繼承的使用


1.c++中繼承有公有繼承,保護繼承,私有繼承

定義個基類:
#include
using namespace std;
class Base
{
public:
      void display()
       {
          cout<<"111212"<<endl;
       }
protected:
      int x;
private:
      int y;
}; 
定義一個派生類:
公有繼承:派生類的對象可以訪問基類中的公有成員,派生類的成員函數可以訪問基類的公有和保護成員,
基類的公有成員和保護成員作為派生類的成員時,保持其原有狀態
class A:public Base
{
public:
      void print()
       {
          cout<<"liglog"<<endl;
          display();  //派生類內部可以訪問基類的公有成員
          x=0;   //派生類內部中可以訪問基類的保護成員
          cout<<
        //y=1;   //派生類內部都不可訪問基類的私有成員
        //cout<<
       }
protected:
    int Ax;
private:
    int Ay;
};

  保護繼承:派生類的成員函數可以訪問基類的公有成員和保護成員,以及基類的公有成員和保護成員作為派生類的保護成員,保護成員還可被派生類的子類訪問

class B:protected Base
{
public:
    void print()
    {
        cout<<"shi"<<endl;
        display();//派生類內部可訪問基類的公有成員
        x=1;//派生類內部可訪問基類的保護成員
        cout<<x<<endl;
//      y=1;//派生類內部不可訪問基類的私有成員
//      cout<<y<<endl;
    }
protected:
    int Bx;
private:
    int By;
};

 私有繼承:基類的公有成員和保護成員作為派生類的私有成員,不能被派生類的子類訪問,即不能被往下繼承。

class C:private Base
{
public:
    void print()
    {
        cout<<"wo"<<endl;
        display();//派生類內部可訪問基類的公有成員
        x=1; //派生類內部可訪問基類的保護成員
        cout<<x<<endl;
//      y=1; //派生類內部不可訪問基類的私有成員
//      cout<<y<<endl;
    }
protected:
    int Cx;
private:
    int Cy;
    
};

  main函數:

int main()
{
 // 公有繼承部分
    A aObject;
    aObject.display();//派生類外部可以訪問基類的公有成員
    aObject.print();
 // aObject.x=1;//派生類外部不可訪問基類的保護成員
 // aObject.y=3;//派生類外部不可訪問基類的私有成員
 //保護繼承部分
    B bObject;
 // bObject.display();//派生類外部不可訪問基類的公有成員
    bObject.print();
 // bObject.x=1;//派生類外部不可訪問基類的保護成員
 // bObject.y=1;//派生類外部不可訪問基類的私有成員
 //私有繼承部分
    C  cObject;
//  cObject.display();//派生類外部不可訪問基類的公有成員
    cObject.print();
//  cObject.x=1;//派生類外部不可訪問基類的保護成員
//  cObject.y=1;//派生類外部不可訪問基類的私有成員
    return 0;
}

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM