PoEduo - C++階段班【Po學校】-08複習C Plus Plus- 課堂筆記

Object C複習  C Plushtml

1-->bool    程序員

1.0  BOOL  _Bool  bool  3個布爾有什麼區別?函數

1.1  看代碼,回答 n的值是:  A : 3     B:  1   spa

int main()
{
    int n = 3;
    bool b = n;
    n = b;
    return 0;
}

答案: B3d

2--> const  指針

2.0  const首先在C++中產生,C發現很好用,就拿到了C中。調試

2.1  const和宏的區別,const是一種編譯器級別的關鍵字,它有3個特色:1 具備類型的常量  2  編譯時分配空間  3 它是有做用域的。code

2.2  使得const失效有不少方式,如其中一種:const cast<>。htm

2.3  非編譯器級別的常量有: 1數字 10;  2字符串  「Hello World」;帶雙引號的字符串存儲在常量區,是不能夠被更改的。blog

2.4  const修飾的常量能夠稱爲僞常量。使用#define定義出來的常量是真常量。

2.5  const是帶有類型檢測的,好比char*轉int*的時候,使用define的常量,直接替換,而const修飾的常量會有提示。

2.6  const在編譯時會分配空間,更方便調試。

2.7  const它是擁有做用域的,#define是全局的。

2.8  雖然define能全面代替const,但const是給程序員用的,它更易於調試,比較透明,更易於問題的定位。


 

3-->enum定義常量  複習

3.0  少用define,能夠用enum代替。

3.1  enum和const有哪些不一樣:  1  enum定義出來的是真常量,const修飾的是僞常量。  2  const須要空間的分配,enum不須要分配空間,直接就是一個常數。  3  但const能作到許多enum不能作的如:一個const的指針,enum就無能爲力。


4-->域做用符::  複習

4.0  域做用符的做用:  1  命名空間    2   類    3   全局(當域做用符前面什麼也沒有時)

 


 

 

5-->new  和  delete 運算符 複習

5.0  new  delete 它們是運算符,不是函數。

5.1  malloc()  和 free()  與  new  delete 之間區別:malloc()不會調用構造函數,free()也不會調用析構函數。

5.2  new  和  delete  是須要成對出現的。


 

6-->函數重載 複習

6.0  返回值可以構成重載?  A: 對。      B: 錯。    答案B。    重載和函數的返回值沒有關係。

6.1  1參數類型不一樣能構成重載,2參數的個數不一樣也能構成重載,3在類內部,非const版本成員函數和const版本的成員函數能構成重載

6.2  只要函數命名粉碎後不重名,就能達到重載的目的。

6.3  再次說明: 重載和函數的返回值沒有關係

6.4  二義性的問題:類型或者被隱匿轉換,或者被強制轉換,更或者被提高轉換,會使得函數參數和一個以上的重載的函數匹配。

6.5  默認形參值:  頭文件裏面初始給出一個值,注意要多個默認形參賦值,要注意順序,從右往左。

 

 


 

7-->引用 複習

7.0  引用可代替指針。

7.1  引用一旦肯定,就不會再被更改。

7.2  回答:看下面代碼,選擇答案   A:100  B: 50 。  答案:B

int main()
{
    int n = 100;
    int & rn = n;
    int o = 50;
    rn = o;
    //此時n = ?
    
    return 0;
}

7.3  引用至關於一個變量的別名

7.4  引用 在傳參時,至關於傳自身。

7.5  再看一個錯誤的引用的用法,在函數的棧內部出現的變量,出棧後就不存在了,返回它的引用是有錯誤的。

7.6  返回一個引用,必定要是生命同期不會被結束的,纔是正確的。


 

8-->類型轉換 複習

8.0  在C++中,如int()的C風格類型轉換是強制轉換,C++中有本身的一套轉換風格。

8.1  1 static_cast<>    2  const_cast<>     3  reinterpret_cast<>   4   dynamic_cast<>  


9-->inline  內聯請求  複習

9.0  inline能夠代替define的功能。

9.1  宏是必定會展開的,但inline只是對編譯器發出一個請求,編譯器不必定就實現inline展開。

9.2  轉到反彙編,查看inline是否生效。關鍵看申請inline的函數有沒有call,inline生效則展開來,沒有call。

相關文章
相關標籤/搜索