c c 學習筆記 (5)

2021-06-28 16:46:26 字數 903 閱讀 6060

類中的三五原則

拷貝控制操作:拷貝構造、拷貝賦值,移動構造、移動賦值,析構,一般編譯器會自行生成,但對於類中含有指標類成員時,編譯器僅是作了相應的值傳遞,往往達不到使用者要求。

拷貝構造,第一引數是自身類型別,且任何額外的引數都有預設值。其可以發生在以下四種情況

需要定義其析構函式的類同時也需要重新定義拷貝和賦值

需要拷貝定義的類同時往往也需要定義賦值的操作

=default由編譯器生成合成版本的建構函式。=delete表明阻止拷貝,=delete必須出現在函式第一次出現的時候,且可以出現在任何函式上。

另析構函式不能是=delete,由於乙個刪除的析構函式的類無法銷毀,且不能建立該型別的變數或臨時變數。且若乙個類的某個成員具有刪除析構,則這個類自身依舊不能建立變數或臨時變數。但可以建立乙個指標指向該型別,但依舊不能使用delete 銷毀該指標。

#include using namespace std;

const int d = 33;

struct t ;

int main()

所以當由編譯器合成一些拷貝控制成員時,若本類中有資料成員不能以預設的構造、拷貝、賦值或銷毀,相應的其方法也同樣會被編譯器定為=delete。

若乙個有const 成員,若引用成員,編譯器不會為其合成預設建構函式。#include using namespace std;

const int d = 33;

struct s

};struct t

};int main()

t& operator = (t a)

};void swap(t& a, t& b)

int main() ;

void s::display() &&

{    cout << i <

c c 學習筆記 5

每天一點點,不知不覺已經到了第4章了。首先是對於函式的基礎知識的說明,以等同於c 的indexof的函式為例子,對於一些c 的程式設計師,c c 中的字串是乙個char的陣列,但是陣列的書寫方式也是不一樣的,c 中都是型別,而c c 中的確實型別 變數名,雖然一開始都是有點不習慣,但是幾次練習實踐後...

C C學習筆記

1.儲存型別 標準c語言為變數 常量 函式定義了4種儲存型別 extern,auto,static,register,它們分別用乙個關鍵字 儲存型別說明符 來說明。這4種儲存型別可分為兩種生存期限 永久的 即整個程式執行期間都存在 extern和static 和臨時的 即暫時儲存在堆疊和暫存器中 a...

C,C 學習筆記

1.求a的n次方 標頭檔案pow a,n a,n都為double 2.關於指標的一些小測試 includeusing namespace std int main int a 8 int m 3 cout 3.sort位於 algorithm 中,sort p,p n 預設公升序排列。4.inclu...