宣告乙個point作為基類,私有成員乙個座標int x,y;再宣告乙個point的方式為私有繼承的rectangle派生類,最後宣告乙個方式為公有繼承的cube的派生類,因為私有繼承不可以直接訪問基類的私有成員,基類的公有成員和保護成員都以私有成員身份出現在派生類中(公有繼承時,基類的公有成員和保護成員的訪問屬性再派生類中不變,基類私有方式還是不可直接訪問),這三個類的之間的鏈結到底是怎麼實現的呢,point---->rectangle(私有繼承)---->cube(公有繼承);
先宣告乙個point類作為最底層的基類:
#ifndef __point_h__};int point::getx()#endif //__point_h__#define __point_h__
#include using namespace std;
class point
point()
point(int x1, int y1)
~point()
protected:
void setx(int xx)
void sety(int yy)
public:
int getx();
int gety()//類裡實現,內斂函式
private:
//int x,y;
#pragma onceclass rectangle : private point
rectangle()
public:
void display()
void updatepoint(int xx, int yy)
private:
int w,h;
};
#pragma onceclass cube : public rectangle
void move (int x ,int y)
private:
int l;
};
注釋 檔案級程式輸出:#include #include #include "point.h"
#include "rectangle.h"
#include "cube.h"
using namespace std;
int main()
此時:
注釋 檔案級#include #include #include "point.h"
#include "rectangle.h"
#include "cube.h"
using namespace std;
int main()
{ cube cube(3,4,10,5,30);
cube.display();
cube.move(23, 20);
cube.display();
cout詳情看**,分析引數的變化。
C 繼承與派生
派生新類 吸收已有類的成員 調整已有類成員和新增新的成員 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,派生類成員宣告 繼承方式有 public protected private 預設 公有繼承 基類的公有和保護乘員的訪問屬性在派生類中不變,基類的私有成員不能直接訪問 型別相容規則...
c 繼承與派生
繼承 與派生 一 派生方式的不同的表現 1 派生類在類內成員對基類成員 的訪問許可權 2 派生類的物件對基類成員的訪問許可權。二 公有繼承 1 基類protected和public的成員在派生類中訪問屬性保持不變 2 基類的private成員在派生類中不可訪問。3 派生類的成員 即派生類內 可以直接...
c 繼承與派生
一 基本概念 1 類的繼承,是新的類從已有類那裡得到已有的特性。或從已有類產生新類的過程就是類的派生。原有的類稱為基類或父類,產生的新類稱為派生類或子類。2 派生類的宣告 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,繼承方式 基類名n 3 乙個派生類可以同時有多個基類,這種情況稱為...