C++學習零碎知識

contest常量

C語言中的const變量框架

C語言中const變量是隻讀變量,有本身的存儲空間函數

C++中的const常量spa

可能分配存儲空間,也可能不分配存儲空間  指針

const常量爲全局,而且須要在其它文件中使用對象

當使用&操做符取const常量的地址繼承

佔位符,須要賦值,即便不用;若是用默認值給佔位符,調用此函數,可賦值,也可不賦值內存

引用

/*引用   1、普通引用必須初始化,引用時依賴於某個對象資源

 2、引用作函數參數時,聲明時不需初始化編譯器

 3、能夠給引用再次添加應用*/編譯

int a =10;

int& b = a;

int &c = b;

cout<<"a="<<a<<"  b="<<b<<"  c="<<c<<endl;

b = 20;

testRefs(a,b);

cout<<"a="<<a<<"  b="<<b<<endl;

int m,n;

testRefs(m,n);

cout<<"m="<<m<<"  n="<<n<<endl; 

常量指針和指針常量

/*常量指針,指向的內存空間不可修改,指向能夠修改 const int *p1   */

int a = 10,b = 11;

const int *p1 = &a;

cout<<*p1<<endl;

//*p1 = 20;

p1 = &b;

cout<<*p1<<endl;

/*指針常量,指針的指向不可修改,指向的內存空間能夠修改 

int * contst p2   */

int m=20,n=22;

int * const p2 = &m;

cout<<*p2<<endl;

//p2 = &n;

*p2 = 55;

cout<<*p2<<endl;

賦值兼併性原則 

父類指針(引用)指向子類對象 (子類中含有父類沒有的東西)

子類對象初始化父類對象 

構造和析構順序

先調用父類的構造函數,在調用子類的構造函數

先析構子類的析構函數,在調用父類的析構函數

多態

多態定義:一樣的調用語句,有多種不一樣的調用方式

多態的條件:

        一、有繼承  

        二、有虛函數重寫 (在基類中的函數上加virtual關鍵字,子類可寫也可不寫)

         三、父類指針(父類引用)指向子類對象

聯編

靜態聯編:在編譯器編譯階段,已經決定了函數的調用(不寫virtual關鍵字,是靜態聯編)

動態聯編:在運行階段,根據具體的對象(具體的類型),執行不一樣對象的函數,表現爲多態

面向對象的三大特性

一、封裝突破C函數的概念,用類作函數參數時候,能夠使用對象的屬相和方法

二、繼承代碼的服用

三、多態能夠提早搭好框架,讓後來人直接重寫本身的函數,框架自動調用後來寫的函數  面向將來

虛函數、純虛函數、虛析構函數

一、虛析構函數,在析構基類資源時,將派生類的資源也一塊兒析構

二、虛函數 ,只有virtual ;既有定義,也有實現的代碼(在.h實現須要virtual關鍵字,在.cpp中實現是不須要);包含虛函數的能夠定義其對象

三、純虛函數 ,必須有virtual和=0 ;只有定義,沒有實現(在.h實現須要virtual關鍵字,在.cpp中實現是不須要);包含純虛函數的不能夠定義其對象

相關文章
相關標籤/搜索