C 高階程式設計的一些細節問題

2021-10-22 22:15:47 字數 2360 閱讀 3649

引用的本質:常量指標。資料型別 * const 變數名,如int * const p

對於常量指標,不能修改指標指向,可修改指向的內容。

用引用的操作可以直接修改實參

作用:函式名可以相同,提高復用性。

函式過載滿足條件:

在c++中,struct和class都可以表示乙個類,唯一的區別就在於預設訪問許可權不同

區別:

int student :: b;

//靜態變數宣告

class

student

int a;

static

int b;

};

常函式:

常物件:

class

building

string sittingroom;

private

: string bedroom;};

void

visitbedroom

(building &building)

void

test01()

intmain()

classa;

classb}

;

概念:對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。

語法:自定義資料型別 operator 過載符號 (引數1, 引數2,...)

例如:

class

person};

//全域性函式過載 + 號

person operator

+(person& p1, person& p2)

語法:class 子類 :繼承方式 父類

如:class son : public father;

繼承方式:

9.1、繼承中同名成員處理

總結:

9.2虛繼承

目的:利用虛繼承,解決菱形繼承的問題

語法:繼承之前,加上關鍵字virtual,如class son:virtual public father;

多型分為兩類:

靜態多型和動態多型區別:

動態多型滿足條件:

例子:

class

father};

class

son:

public father};

void

dospeak

(father& father)

intmain()

10.1、純虛函式與抽象類

在多型中,通常父類中虛函式的實現是無意義的,主要都是呼叫子類重寫的內容,因此可以將虛函式改為純虛函式。

純虛函式語法:virtual 返回值型別 函式名(引數列表)= 0;

例如:virtual void func() = 0; //純虛函式

當類中有了純虛函式,這個類就成為了抽象類

抽象類特點:

10.2、虛析構與純虛析構

多型使用時,如果子類中有屬性開闢到堆區,那麼父類指標在釋放時無法呼叫子類的析構函式**。

解決辦法:將父類中的析構函式改為虛析構或純虛析構

虛析構與純虛析構的共性:

虛析構與純虛析構的區別:

虛析構語法:virtual ~類名(){}

純虛析構語法:virtual ~類名() = 0;

C 一些細節

include include pthread.h using namespace std static pthread mutex t mutex class single class single public static single instance static single getin...

C 的一些細節

1.c 中,將負數賦值給unsigned是完全合法的。例如,將 1賦值給unsigned char,那麼結果是255.2.c 中,double的精度和計算速度都要超過float,long double則需要承擔額外的執行代價。3.std ou t hi d endl 等價於std out hi 4....

C變數的一些細節

變數宣告向編譯器保證變數以指定的型別和名稱存在,這樣編譯器在不需要知道變數完整細節的情況下也能繼續進一步的編譯。變數宣告只在編譯時有它的意義,在程式連線時編譯器需要實際的變數宣告。變數的宣告有兩種情況 extern int i 宣告,不是定義 int i 宣告,也是定義一種是需要建立儲存空間的。例如...