C 繼承與派生小例

2022-01-20 03:26:22 字數 1680 閱讀 8503

宣告乙個point作為基類,私有成員乙個座標int x,y;再宣告乙個point的方式為私有繼承的rectangle派生類,最後宣告乙個方式為公有繼承的cube的派生類,因為私有繼承不可以直接訪問基類的私有成員,基類的公有成員和保護成員都以私有成員身份出現在派生類中(公有繼承時,基類的公有成員和保護成員的訪問屬性再派生類中不變,基類私有方式還是不可直接訪問),這三個類的之間的鏈結到底是怎麼實現的呢,point---->rectangle(私有繼承)---->cube(公有繼承);

先宣告乙個point類作為最底層的基類:

#ifndef __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;

};int point::getx()#endif //__point_h__

#pragma once

class rectangle : private point

rectangle()

public:

void display()

void updatepoint(int xx, int yy)

private:

int w,h;

};

#pragma once

class 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 乙個派生類可以同時有多個基類,這種情況稱為...