(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承諾。標準庫容器能對異常發生時其自...