物件導向程式設計
目的:
提供可以重用的**;
資料表示
類方法
在類外只能用共有成員訪問protected和private部分的成員;
對於,外部世界來說,保護成員的行為與私有成員的行為相似;
對於派生類來說,保護成員的行為與公有成員相似;
最好對資料成員採用私有訪問控制,不要使用保護訪問控制,同時,通過基類方法使派生類能夠訪問基類資料;
對於成員函式來說,保護訪問控制很有用,它讓派生類能夠訪問公眾不能使用的內部函式。
擴充套件類
修改類class derived:public base
基類
派生類
首先建立基類物件
派生類建構函式應該通過成員初始化列表將基類資訊傳遞給基類建構函式(若不呼叫基類建構函式將使用預設的基類建構函式)
派生類建構函式應該初始化派生類新增的資料成員
(建構函式和複製建構函式的區別)
建立派生類物件時,程式首先呼叫基類建構函式,然後再呼叫派生類建構函式;
基類建構函式負責初始化繼承的資料成員;
派生類建構函式主要用於初始化新增的資料成員;
派生類的建構函式總是呼叫乙個基類的建構函式;
可以使用初始化列表語法指明要使用的基類建構函式,否則將使用預設的基類建構函式;
派生類物件過期時,程式將首先呼叫派生類析構函式,然後再呼叫基類建構函式;
derived::derived(type1 x,type2 y):base(x,y) //初始化列表
//derived 派生類
//base基類
同乙個方法在派生類和基類中是不同的,即方法的行為取決於呼叫該方法的物件;
如果在派生類中重新定義基類的方法,通常將基類方法宣告為虛的(有函式體);
這樣,程式將根據**物件型別而不是引用型別來選擇方法**;
通常為基類宣告乙個虛析構函式。
虛函式關鍵字:virtual
關鍵字只用於類宣告的方法原型中,而不用於方法定義中
末尾宣告處為=0eg:virtual double area() const =0;
用於兩個類擁有一定的共性
eg:circle和ellipse
共同點:中心座標和move()方法(兩個類相同)
area()方法(兩個類不同)
注意
抽象基類必須至少包含乙個純虛函式
類宣告中包含純虛函式時,不能建立該類的物件;包含純虛函式的類只能用作基類
C 類的繼承
繼承是物件導向程式設計的主要特徵之一,它可以讓你重用 可以節省程式設計的時間。1.object類的作用。object object為別名 是所有類的基類,在c 中所有的類都直接或間接繼承於object,如果在乙個類的宣告中沒有指定它繼承於哪個類則是繼承於object類。2.類繼承的實現。以下定義兩個...
C 類的繼承
複習下c 類的繼承,先看下面例子 class a public可以在類內部 派生類 類的例項訪問 protected void test2 protected可以在類內部 派生類訪問 private int m a m a為private,只能在本類使用 class b public a class...
c 類的繼承
類的繼承有三種方式 1 公有繼承 2 私有繼承3 保護繼承 基類中的私有成員在派生類中時隱藏的,只能在基類中訪問 派生類中的成員不能訪問基類中的私有成員,但是可以訪問基類中的公有成員和保護成員。派生類從基類公有繼承時,基類的公有成員和保護成員仍然是派生類中的公有成員和保護成員 私有繼承時,公有成員和...