我們知道,c++類中當使用者沒有顯示的宣告建構函式時,編譯器會自動生成乙個無引數的預設建構函式
結構體除了成員訪問許可權外與類很相似,並且在學習一些庫的**時出現了這種寫法,故作如下測試:
#include
#include
using
namespace std;
intmain()
;//未定義顯示建構函式
//直接使用()生成結構體物件
cout <<
test()
.a <<
" "<<
test()
.b << endl;
cout <<
test()
.v.size()
<< endl;
for(
const
auto i:
test()
.v)
cout << i << endl;
//因為vector還未開闢空間所以沒有輸出
return0;
}
其輸出如下:
0 0
0
可以看出編譯器其實也給結構體生成了隱式預設建構函式,形如:
test()
;
生成物件中的成員變數的值應該是對應型別的預設值 C 中建構函式預設引數使用
一 include using namespace std class box box box int h,int w,int len int box volume int main box box1 1 不指定第2 3個實參 cout box1 s volume 二 執行 root localho...
C 中關於預設建構函式和預設引數
include using namespace std class time time int s,int h 10,int m 52 time int h,int m,int s hour h minute m sec s 過載建構函式,執行時會根據形參的不同,自動匹配呼叫 類的初始化資料成員的另...
C 中建構函式的引數預設的詳解
c 中建構函式的引數預設的詳解 前言 建構函式中引數的值既可以通過實參傳遞,也可以指定為某些預設值,即如果使用者不指定實參值,編譯系統就使形參取預設值。在建構函式中也可以採用這樣的方法來實現初始化。include 程式設計客棧ostream using namespace std class a i...