c 學習 建構函式的三種情況下的應用

2021-07-11 09:13:18 字數 786 閱讀 8677

建構函式應用於以下三中情況:

(1)建立乙個物件

(2)給物件初始化

(3)擔當型別轉換的角色

建構函式用來建立乙個物件大家都知道這裡就不詳細說明了,下面仔細的分析下第2,3種情況。

給物件初始化:

以下這個例子的執行結果是呼叫了兩次建構函式。第一次是test t;呼叫建構函式構造乙個物件。第二次是t = 100;呼叫建構函式給物件初始化。那麼為什麼這裡會呼叫一次建構函式呢?看下面的分析。

#include

using namespace std;

class test

之所以能進行賦值是因為建構函式能接收乙個整型資料,通過整型資料這個引數可以構造乙個test型別的臨時物件,這個臨時物件的型別跟t的型別相同都是test型別的,這個臨時物件的data值為100,然後這個臨時物件把值100給t物件,這個臨時物件完成使命後就自己析構了。這樣就完成了整型值給物件賦值的操作了。(所以會多因此呼叫拷貝建構函式,同時也擔當了型別轉換的角色)

但是有時候這個100是不能夠給t賦值的,能不能賦值取決於這個臨時物件能不能構建成功。例如下面的例子就不能進行賦值。

如果把上面例子中的建構函式寫成這樣臨時物件就不能構建成功。(因為這個建構函式不能夠接收乙個整型資料

test()

{cout<<"create a object"<

C 三種呼叫拷貝建構函式的情況

三種呼叫拷貝建構函式的情況 1.用類的乙個物件去初始化另乙個物件時 2.函式的形參是類的物件,呼叫函式,進行形參與實參的結合時 3.函式的返回值是類的物件,函式完成呼叫返回時 產生乙個臨時物件 話不多說,測試 如下 include using namespace std class point po...

C 呼叫拷貝建構函式的三種情況。

三種情況如下 1.物件作為函式引數,以值傳遞的方式傳入函式體。2.物件作為函式返回值,以值傳遞的方式從函式反回。3.物件用於給另乙個物件進行初始化。下面通過例題來解釋上面的三種情況 例題如下 問題 上面的結果輸出是?答案如下 解析 1 首先從 b t1 play 5 開始 play 5 呼叫了建構函...

拷貝構造函式呼叫的三種情況

拷貝建構函式的引數是本類物件的引用。拷貝建構函式的呼叫有以下三種情形 1 用類的乙個物件去初始化另乙個物件時 2 當函式的形參是類的物件時 值傳遞 如果是引用傳遞則不會呼叫 3 當函式的返回值是類的物件或引用時。拷貝建構函式與賦值操作符的區別 拷貝建構函式的作用是完成對未初始化儲存區的初始化,而賦值...