對(duì)下列知識(shí)點(diǎn)進(jìn)行相關(guān)學(xué)習(xí):
主要就將純虛函數(shù)作為基類進(jìn)行程序編寫練習(xí)
抽象類:
抽象類的一般形式,帶有純虛函數(shù)的類稱為抽象類:
class? 類名 ?{virtual 類型 函數(shù)名(參數(shù)表)=0;//純虛函數(shù)}
抽象類只能作為基類來使用。不能聲明抽象類的對(duì)象,只能聲明抽象類的指針。純虛函數(shù)直到被覆蓋前所派生的類均為抽象類
抽象類的作用:
抽象類為抽象和設(shè)計(jì)的目的而建立,將有關(guān)的數(shù)據(jù)和行為組織在一個(gè)繼承層次結(jié)構(gòu)中,保證派生類具有要求的行為。
對(duì)于暫時(shí)無法實(shí)現(xiàn)的函數(shù),可以聲明為純虛函數(shù),留給派生類去實(shí)現(xiàn)。
****注意:
(1)抽象類中可以有多個(gè)純虛函數(shù)。
(2)抽象類也可以定義其他非純虛函數(shù)。
(3)從抽象類可以派生出具體或抽象類,但不能從具體類派生出抽象類。
問題:抽象類需要有構(gòu)造函數(shù)和析構(gòu)函數(shù)嗎?
抽象類通常代表一個(gè)抽象的概念,它提供一個(gè)繼承的出發(fā)點(diǎn)。
在一個(gè)復(fù)雜的類繼承結(jié)構(gòu)中,越上層的類抽象程度越高,有時(shí)甚至無法給出某些成員函數(shù)的實(shí)現(xiàn),顯然,抽象類是一種特殊的類,它一般處于類繼承結(jié)構(gòu)的較外層。
引入抽象類的目的,主要是為了能將相關(guān)類組織在一個(gè)類繼承結(jié)構(gòu)中,并通過抽象類來為這些相關(guān)類提供統(tǒng)一的操作接口,更好的發(fā)揮多態(tài)性。
抽象類使得數(shù)據(jù)結(jié)構(gòu)更加清晰,更加貼近自然
拷貝構(gòu)造函數(shù)
對(duì)象的賦值:
一個(gè)已知對(duì)象賦值給另一個(gè)已知對(duì)象。
通過對(duì)賦值運(yùn)算符的重載實(shí)現(xiàn)的。
淺拷貝:
創(chuàng)建q時(shí),對(duì)象p被復(fù)制給了q,但資源未復(fù)制,使得p和q指向同一個(gè)資源,這稱為淺拷貝。