回覆列表
-
1 # 使用者2013589007217
-
2 # 使用者6338718972581
有以下幾種情況:
class MyClass
{
MyClass(){}
MyClass(const MyClass&){}
};
//1. 你自定義的類透過按值傳遞傳給一個函式
void MyFunc(MyClass myclass); //呼叫這個函式會呼叫複製建構函式
//2. 你想透過已有的類的一個物件來建立另一個物件
MyClass myclass1;
MyClass myclass2(myclass1);//這裡會呼叫複製建構函式
//3. 當你用到容器(例如vector
vector
MyClass myclass;
v.push_back(myclass); //這裡呼叫複製建構函式
1.當說明一個類的物件時,使用另外一個物件初始化(此時複製建構函式就如同其他建構函式一樣使用)。2,當一個函式返回值為類型別時。3,當一個類型別的實參傳遞給函式中的傳值呼叫引數時,在這種情況下,複製建構函式決定了引數按照什麼方式傳遞.