C++中的幾種建構函式
阿新 • • 發佈:2019-01-07
看了大神的部落格,感覺很厲害,果斷轉了
C++中的建構函式 C++中的建構函式可以分為4類: (1)預設建構函式。以Student類為例,預設建構函式的原型為 Student();//沒有引數 (2)初始化建構函式 Student(int num,int age);//有引數 (3)複製(拷貝)建構函式 Student(Student&);//形參是本類物件的引用 (4)轉換建構函式 Student(int r) ;//形參時其他型別變數,且只有一個形參 預設和初始化建構函式 預設建構函式和初始化建構函式在定義類的物件的時候,完成物件的初始化工作。 class Student { public: //預設建構函式 Student() { num=1001; age=18; } //初始化建構函式 Student(int n,int a):num(n),age(a){} private: int num; int age; }; int main() { //用預設建構函式初始化物件S1 Student s1; //用初始化建構函式初始化物件S2 Student s2(1002,18); return 0; } 複製(拷貝)建構函式 複製建構函式用於複製本類的物件 Student s2(1002,1008); Student s3(s2);//將物件s2複製給s3。注意複製和賦值的概念不同。 1 2 下面這種情況叫做賦值,不呼叫複製建構函式。 Student s4; s4=s2;//這種情況叫做賦值,自己體會吧 1 2 大多數時候,在類中我們沒有聲明覆制建構函式,而是C++自動為我們生成了一個複製建構函式,如下: Student(Student &b) { this.x=b.x; this.y=b.y; } 1 2 3 4 5 如程式碼所示,它的作用是將一個已存在的物件b,複製給呼叫該複製建構函式的物件。 具體來說,在一下情況發生時,會呼叫複製建構函式: 用複製的方法,建立一個新物件。 函式的形參為類的物件時。(這點和普通型別的形參類似,要複製一份實參給函式) 函式的返回值是類的物件,在函式中定義的物件,在函式結束後訊息,需要呼叫複製建構函式,建立一個臨時的物件,將該臨時物件返回給呼叫該函式的物件。 預設的複製建構函式,在某些情況下會出現問題,想深入學習可以自行百度。 轉換建構函式 轉換建構函式用於將其他型別的變數,隱式轉換為本類物件。 下面的轉換建構函式,將int型別的r轉換為Student型別的物件,物件的age為r,num為1004. Student(int r) { int num=1004; int age= r; } 轉換建構函式可以用在哪裡? 假如過載了+號運算子,使得兩個Student類的物件可以相加,其結果為兩個物件的成員變數age之和。 Student s1(01,18); Student s2(02,20); s1+s2; //其值就是s1.age + s2.age = 18+20=36。 --------------------- 本文來自 林多 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/zxc024000/article/details/51153743?utm_source=copy