1.c++中繼承有公有繼承,保護繼承,私有繼承
定義個基類:
#include
using namespace std;
class base
public:
void display()
cout《"huang"《endl;
protected:
int x;
private:
int y;
定義乙個派生類:
公有繼承:派生類的物件可以訪問基類中的公有成員,派生類的成員函式可以訪問基類的公有和保護成員,
基類的公有成員和保護成員作為派生類的成員時,保持其原有狀態
class a:public base
public:
void print()
cout《"liglog"《endl;
display();//派生類內部可以訪問基類的公有成員
x=0;//派生類內部中可以訪問基類的保護成員
cout《x《endl;
//y=1;//派生類內部都不可訪問基類的私有成員
//cout《y《endl;
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;
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;
**不對的,指點指點,別指指點點。
c 中繼承 多型
有了繼承,指向基類型別的指標或引用就可以被用來指向派生類型別的物件。然後就可以編寫程式來操縱這些指標或引用而不用考慮它們所指向的物件的實際型別。用乙個基類指標或引用來操縱多個派生型別的能力被稱為多型性。在c 中,多型性分為兩種,一種稱為編譯時多型,另一種為執行時多型 分別解釋下 1.編譯時多型,也就...
C 中繼承總結
1 什麼是繼承?繼承 inheritance 機制是物件導向程式設計使 可以復用的最重要的手段,它允許程式設計師在保持 原有類特性的基礎上進行擴充套件,增加功能。這樣產生新的類,稱派生類。繼承呈現了物件導向程式設 計的層次結構,體現了由簡單到複雜的認知過程。2 舉個例子如果 a 是基類,b 是 是 ...
C 中繼承,虛函式的呼叫問題
類繼承 如下 問 呼叫輸出的結果是什麼 class ca void fun2 class cb public ca void fun2 void main 呼叫輸出結果為 cb fun1 cb fun1 ca fun2 原因分析 由於 ca p new cb 中,雖然p是ca指標,但是他指向的虛函式...