C primer學習 拷貝控制 1

2021-07-05 22:07:04 字數 745 閱讀 3084

(1)我們使用=定義變數;

(2)從乙個返回型別為非引用的函式返回物件

(3)用花括號列表初始化乙個陣列中的元素或者乙個聚合類的成員.

(4)某些類型別對它們所分配的物件使用拷貝初始化.

point global;

point foo_bar(point arg) // 第1處

; // 第4, 5初

return *heap; // 第6處

}

class hasptr

hasptr(const hasptr & h) : ps(new

string(*(h.ps))), i(h.i){} //拷貝建構函式

private:

string *ps;

int i;

};

[練習]:為hasptr寫乙個賦值運算符號,也應該為ps重新分配乙個新的動態空間.
class hasptr

hasptr(const hasptr & h) : ps(new

string(*(h.ps))), i(h.i){} //拷貝建構函式

hasptr & operator= (const hasptr &h) //拷貝賦值運算符號

private:

string *ps;

int i;

};

C primer學習 拷貝控制 3

strblob const strblob rhs 拷貝初始化 strblob operator const strblob rhs 練習 定義乙個使用引用計數的hasptr類class hasptr 在拷貝建構函式中定義三個成員,並且初始化引用計數為1 hasptr const hasptr h ...

C Primer學習筆記 13 拷貝控制

題記 本系列學習筆記 c primer學習筆記 主要目的是討論一些容易被大家忽略或者容易形成錯誤認識的內容。只適合於有了一定的c 基礎的讀者 至少學完一本c 教程 如果文中有錯誤或遺漏之處,敬請指出,謝謝!c 類中有四個不可或缺的部分,那就是建構函式 拷貝建構函式 賦值操作符和析構函式。如果類中沒有...

c primer要點 拷貝控制

1.default 顯式要求編譯器生成合成版本 delete 定義為刪除的函式阻止拷貝。2.右值引用只能繫結到將要銷毀的物件 std move 獲得繫結到左值上的右值引用 移動建構函式的第乙個引數應該是該型別的右值引用,移動操作不應丟擲異常,可以指明noexcept承諾。標準庫容器能對異常發生時其自...