溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++中如何使用類對象構(gòu)造函數(shù)

發(fā)布時間:2021-07-27 18:30:57 來源:億速云 閱讀:247 作者:Leah 欄目:編程語言

C++中如何使用類對象構(gòu)造函數(shù),很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

對于普通類型的對象來說,他們之間的復(fù)制是很簡單的,自己定義的類的對象同樣是對象,誰也不能阻止我們用以下的方式進行復(fù)制,例如:

include <iostream>    using namespace std;        class Test    {    public:        Test(int temp)        {            p1=temp;        }    protected:        int p1;        };        void main()    {        Test a(99);        Test b=a;    }

普通對象和類對象同為C++類對象,他們之間的特性有相似之處也有不同之處,類對象內(nèi)部存在成員變量,而普通對象是沒有的,當(dāng)同樣的復(fù)制方法發(fā)生在不同的對象上的時候。那么系統(tǒng)對他們進行的操作也是不一樣的,就類對象而言,相同類型的類對象是通過拷貝構(gòu)造函數(shù)來完成整個復(fù)制過程的,在上面的代碼中。

#include <iostream>    using namespace std;        class Test    {    public:        Test(int temp)        {            p1=temp;        }        Test(Test &c_t)//這里就是自定義的拷貝構(gòu)造函數(shù)        {            cout<<"進入copy構(gòu)造函數(shù)"<<endl;            p1=c_t.p1;//這句如果去掉就不能完成復(fù)制工作了,此句復(fù)制過程的核心語句        }    public:        int p1;    };        void main()    {        Test a(99);        Test b=a;        cout<<b.p1;        cin.get();    }

我們并沒有看到拷貝構(gòu)造函數(shù),同樣完成了復(fù)制工作,這又是為什么呢?因為當(dāng)一個類沒有自定義的拷貝構(gòu)造函數(shù)的時候系統(tǒng)會自動提供一個默認(rèn)的拷貝構(gòu)造函數(shù),來完成復(fù)制工作。

下面,我們?yōu)榱苏f明情況,就普通情況而言(以上面的代碼為例),C++類對象來自己定義一個與系統(tǒng)默認(rèn)拷貝構(gòu)造函數(shù)一樣的拷貝構(gòu)造函數(shù),看看它的內(nèi)部是如何工作的! 上面代碼中的Test(Test &c_t)就是我們自定義的拷貝構(gòu)造函數(shù),拷貝構(gòu)造函數(shù)的名稱必須與類名稱一致,函數(shù)的形式參數(shù)是本類型的一個引用變量,且必須是引用。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI