1. 程式人生 > >C++基礎中常見易混淆知識點

C++基礎中常見易混淆知識點

寫程式時經常遇到的幾個難以分辨的C++概念:

1,#include <xxx.h> 與#include “xxx.h”的區別:<>:是從庫目錄中查詢,“”:是從當前目錄(執行時目錄)開始查詢,一般情況下如果要包含自己寫的標頭檔案,是要用“”的,

2,在C++中class類,可以看做是一種特殊的結構體struct,在類的定義中,如果未指明成員型別,則預設為private,而結構體中則預設為public, public,protected,private這三個訪問控制識別符號來控制一個類內部的成員和成員函式對外的可見性,被public識別符號修飾的成員或者成員函式,在類的內部或外部都可以被訪問到;被private識別符號修飾的成員或者成員函式只能在該類中被訪問;protected和private基本相似,只有一點不同:繼承的結構可以訪問protected成員,但是不能訪問private成員。

3,引用:引用經常用在函式的傳參上,另外數值交換函式也經常用到引用,例如:change(int &a,int &b){int temp;temp = x;x=y;y=x}呼叫時即可用int a=3;int b=4;change(a,b);一般不用指標來作為引數進行數值交換,因為會引起歧義;

4,在C++中,通常將類的定義放在.h標頭檔案中,而將其實現放在.cpp檔案中,但是不要忘了在.cpp檔案中新增 #include “xxx.h”

5,類的重複定義,類的定義一般是在標頭檔案中,類重複定義說明在標頭檔案中該類的定義包含了兩次或者兩次以上,那如何防止類的重複定義呢?用預編譯標頭檔案,例如:

用#ifndef Point_H_H

#define Point_H_H

class Point();

#endif

可以防止類的重定義

6,VC++程式編譯連結原理與過程

7,函式的覆蓋:在子類中重寫父類的函式,此時採用早期繫結的方法,此時採用早期繫結的方法,如果加入了virtual,則採用遲繫結的技術,在執行時根據物件的型別確定呼叫哪一個函式,遲繫結技術是MFC的類的繼承的精髓。