C++中 struct 和 class 的區別
struct 一般用于描述一個數據結構集合,而 class 是對一個對象數據的封裝;struct 一般用于描述一個數據結構集合,而 class 是對一個對象數據的封裝;在繼承關系中,struct 默認是公有繼承,而 class 是私有繼承。
在C++中使用結構體,可以省略 struct 關鍵字直接使用。
一個C++程序從源碼到執行文件,有四個過程,預編譯、編譯、匯編、鏈接。
C++規定靜態成員函數沒有this指針.
函數指針的應用場景:回調(callback)。我們調用別人提供的 API函數(Application Programming Interface,應用程序編程接口),稱為Call;如果別人的庫里面調用我們的函數,就叫Callback。
//以庫函數qsort排序函數為例,它的原型如下: void qsort(void *base,//void*類型,代表原始數組 size_t nmemb, //第二個是size_t類型,代表數據數量 size_t size, //第三個是size_t類型,代表單個數據占用空間大小 int(*compar)(const void *,const void *)//第四個參數是函數指針 ); //第四個參數告訴qsort,應該使用哪個函數來比較元素,即只要我們告訴qsort比較大小的規則,它就可以幫我們對任意數據類型的數組進行排序。在庫函數qsort調用我們自定義的比較函數,這就是回調的應用。 //示例 int num[100]; int cmp_int(const void* _a , const void* _b){//參數格式固定 int* a = (int*)_a; //強制類型轉換 int* b = (int*)_b; return *a - *b; } qsort(num,100,sizeof(num[0]),cmp_int); //回調
野指針避免辦法:
初始化置NULL;申請內存后判空;指針釋放后置NULL
內聯函數和宏函數
浙公網安備 33010602011771號