什麼是複製建構函式

2021-07-10 11:52:26 字數 672 閱讀 2550

複製建構函式又稱為拷貝建構函式,是一種特殊的建構函式,它由編譯器呼叫來完成一些基於同一類的其他物件的構建及初始化。它存在唯一乙個引數是不可變的。這個函式經常在函式呼叫期間於使用者定義型別的值傳遞及返回。拷貝建構函式要呼叫基類的拷貝建構函式和成員函式。一般它使用常量方式呼叫,另外,它也可以用非常量方式呼叫。

在c++中,有3中物件需要複製的情況。這時,複製建構函式將會被呼叫,具體如下。

乙個物件以值傳遞的方式傳入函式體。

乙個物件以值傳遞的方式從函式返回。

乙個物件需要通過另外乙個物件進行初始化。如果在前兩種情況下不使用複製建構函式的時候,就會導致乙個指標指向已經被刪除的記憶體空間。

對於這3種情況來說,初始化和複製的不同含義是構造函式呼叫的原因。事實上,複製建構函式是由普通建構函式和賦值操作符共同實現的。複製建構函式的示例**如下:

#include

using namespace std;

class a

a()a(a& a)

protected:

private:

int x;

int y;

};int main()

有3種情況會使用複製建構函式:

乙個物件以值傳遞的方式傳入函式體。

乙個物件以值傳遞的方式從函式返回。

乙個物件需要通過另外乙個物件進行初始化。

什麼是建構函式

在建立物件的時候,能否給不同的物件靈活地賦予不同的屬性的初值,並保證沒有空值的出現?這個任務可以由建構函式來完成。建構函式是類的一種特殊方法,它的特殊性主要體現在如下的幾個方面 1 建構函式的方法名與類名相同。2 建構函式沒有返回型別。3 建構函式的主要作用是完成對類物件的初始化工作。4 建構函式不...

什麼是建構函式

簡單地說建構函式是類函式,函式名與類名完全相同,無返回值 建構函式屬於類的成員函式,除了具有一般成員函式的特點外,還具有自己的特點 1 是類的乙個特殊的成員函式,函式名與類名相同 2 訪問屬性應該是public 3 功能是初始化物件,在建構函式中一般不作初始化以外的事情 4 可以在類內定義,也可在類...

為什麼需要複製建構函式?

複製建構函式由編譯器隱式呼叫,主要的用途是 1 根據另乙個同型別的物件現實或隱式初始化乙個物件 2 複製乙個物件,將它作為實參傳給乙個函式 3 從函式返回時複製乙個物件 4 初始化順序容器中的元素 5 根據元素初始化式列表初始化陣列元素 類型別物件的初始化 直接初始化和複製初始化 根據c prime...