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";