C 學習隨筆

2021-07-12 03:16:26 字數 1046 閱讀 7610

1.引用必須在宣告時初始化,並且初始化後不能改變其值,類似於是乙個指標常量,而指標可以先宣告再初始化,並且指標指向的值可以隨時改變。

2.如果帶引數列表的函式,必須從右向左新增預設值,也就是說如果函式引數列表中某乙個引數設定為預設值,那麼其右的所有引數必須提供預設值

int test(int a,int b=2,int c=3);  //ok

int test1(int a,int b=2,int c);   //invalid,int c中的c必須要初始化,因為b已經初始化了

3.c++多型性體現在兩個方面:編譯多型性與執行多型性

編譯多型性:主要是函式過載,即根據函式引數個數以及型別的不同選擇合適的呼叫函式;

(1)非const值當做const值使用是ok的,但是const值不能當做非const值使用;

(2)兩個函式如果引數列表個數與型別一樣,只有返回值型別不一樣是不可以的,如:

int test(int a,double b);

double test(int a,double b);

這樣是不可以的,只有返回值型別不同是不可以過載的。

void test(int &x);   -------------1

void test(const int &x);  -----------------2

void test(int &&x);  -----------------3

int a=100;

const int b=&a;

test(a); --------------------1

test(b);----------------------2

test(a+b);-------------------3

過載使用這三種引數的函式時,選擇呼叫最匹配的版本,如果函式3未被定義,那麼test(a+b)呼叫的是函式2,因為其中b是const型別的資料,非const型別資料可以當做             const型別資料使用,但是非const型別資料不能當做const型別資料使用。

執行多型性:主要是虛函式方面,即根據構造物件的虛函式表呼叫相應的類成員函式。

C 學習隨筆

過載 通過函式過載實現類的多型特性,其特徵 1 同一作用域內 同一類中 2 相同的函式名。3 引數與返回型別不同 僅返回型別不同,不是過載函式。4 virtual關鍵字不影響。覆蓋 通過函式覆蓋實現類的繼承特性,其特徵 1 不同作用域 非同一類中 2 函式名 引數都相同。3 基類中的函式須有virt...

C 學習隨筆

1.strlen 方法 include 不含 strlen 方法,若要使用應當引入 標頭檔案 2.vs調整字型大小 ctrl shift 或 3.控制輸出的精確度 include 4.程式執行出現 燙燙燙燙燙燙燙燙燙燙燙燙燙燙燙燙 這種亂碼最常見的地方是visual studio裡。visual s...

c 學習 隨筆五

1 c stl中提供了順序容器和關聯容器。vector,list,deque為順序容器 map,set,multiset,multimap為關聯容器。其中每種容器均提供預設的建構函式來初始化容器物件。vectorstr 5 在這句 中,首先容器使用string的預設建構函式建立了乙個臨時值來建立容器...