拷貝構造函數 & 拷貝初始化


1、格式

1)Foo(const Foo& other) \\復制構造函數  \\左值賦值

2)Foo(Foo&& other)  \\移動構造函數  \\右值賦值

3)explicit Foo(size_type count) \\禁止隱性轉換

2、參數與返回值

 

沒理解???

2、合成拷貝構造函數

編譯器會將給定對象中非static成員拷貝到正在創建的對象中;

3、拷貝初始化 & 直接初始化

4、拷貝初始化  & explicit

1)拷貝構造函數、移動構造函數

2)拷貝構造函數一般是非隱式的,很多情況下都會被隱式地使用;

3)explicit聲明的構造函數只能被顯式地使用,不能隱式地使用;

\\string null_book ="9-999-9999-9";\\隱式轉換成功,調用了拷貝構造函數

\\ 如 vector<int > v2=10; 發生隱式轉換,但是被explicit禁止了

 

5、繞過拷貝構造函數

string str("abc");

string str="abc";


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM