1. 程式人生 > >拷貝建構函式的呼叫

拷貝建構函式的呼叫

一直說到拷貝建構函式,建構函式在建立物件時被呼叫,哪兒拷貝建構函式呢??

1.當用 類的一個物件初始化另一個物件時:

int main()
{
   point A(1,2);
   point B(A);//用物件A初始化物件B,拷貝建構函式被呼叫.
}

2.如果函式的引數是一個類的物件,哪麼在進行實參到形參的傳遞的時候出調用拷貝建構函式:
void f(point p)
{
}
main()
{
   point A(1,2);
   f(A);//函式的形參為類的物件時,當呼叫函式時,拷貝建構函式被呼叫.
}

3.如果函式的返回值是一個物件,那麼函式執行完返回呼叫者時:
void main()
{  
   point B;
   B = g();
}
4.需要產生一個臨時物件時,因為會發生物件的賦值:

注意:返回&(引用)和函式引數傳遞時引用時不會呼叫拷貝建構函式!!