EasyC++,默認構造函數(shù)
大家好,我是梁唐。
默認構造函數(shù)
上一篇文章當中介紹的是顯式構造函數(shù),也就是說我們需要傳入值來對類的成員變量進行初始化。
但也有一些情況,我們可能并不需要傳入值進行初始化,或者有一些其他的邏輯。針對這種情況,C++提供了默認構造函數(shù)的功能。所謂默認構造函數(shù),也就是在沒有提供顯式的初始值時,用來創(chuàng)建對象的構造函數(shù)。
默認構造函數(shù)非常簡單,還是以之前的Stock類為例:
- Stock::Stock() {
 - ...
 - }
 
如果默認構造函數(shù)里沒有任何邏輯,我們也可以把它寫在類聲明里:
- class Stock {
 - ...
 - Stock() {}
 - };
 - #endif
 
C++當中有一個很奇怪的設定,當一個類我們沒有提供任何構造函數(shù)時,C++會默認賦予它一個默認構造函數(shù)。但當我們一旦實現(xiàn)了構造函數(shù)之后,C++則不會進行如此操作。意味著對于定義了構造函數(shù)的類來說,想要使用默認構造函數(shù),必須由程序員手動定義。
有了默認構造函數(shù)之后,我們才可以直接聲明類的實例:
- Stock stock1;
 
如果Stock類沒有默認構造函數(shù),那么上述的語句會報錯。
實現(xiàn)默認構造函數(shù),除了上述那樣手動創(chuàng)建一個沒有任何參數(shù)的構造函數(shù)之外,還可以將已有的構造函數(shù)的所有參數(shù)都設置默認值。
- Stock(const string &co = "Error", int n = 0, double pr = 0.0);
 
由于只能有一個默認構造函數(shù),所以不要同時采用這兩種方式。















 
 
 
 
 
 
 