C++中如何使用類對象構造函數,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
對于普通類型的對象來說,他們之間的復制是很簡單的,自己定義的類的對象同樣是對象,誰也不能阻止我們用以下的方式進行復制,例如:
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++類對象,他們之間的特性有相似之處也有不同之處,類對象內部存在成員變量,而普通對象是沒有的,當同樣的復制方法發生在不同的對象上的時候。那么系統對他們進行的操作也是不一樣的,就類對象而言,相同類型的類對象是通過拷貝構造函數來完成整個復制過程的,在上面的代碼中。
#include <iostream> using namespace std; class Test { public: Test(int temp) { p1=temp; } Test(Test &c_t)//這里就是自定義的拷貝構造函數 { cout<<"進入copy構造函數"<<endl; p1=c_t.p1;//這句如果去掉就不能完成復制工作了,此句復制過程的核心語句 } public: int p1; }; void main() { Test a(99); Test b=a; cout<<b.p1; cin.get(); }
我們并沒有看到拷貝構造函數,同樣完成了復制工作,這又是為什么呢?因為當一個類沒有自定義的拷貝構造函數的時候系統會自動提供一個默認的拷貝構造函數,來完成復制工作。
下面,我們為了說明情況,就普通情況而言(以上面的代碼為例),C++類對象來自己定義一個與系統默認拷貝構造函數一樣的拷貝構造函數,看看它的內部是如何工作的! 上面代碼中的Test(Test &c_t)就是我們自定義的拷貝構造函數,拷貝構造函數的名稱必須與類名稱一致,函數的形式參數是本類型的一個引用變量,且必須是引用。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。