C 結構體中無引數的預設建構函式

2021-10-22 09:30:59 字數 738 閱讀 5263

我們知道,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...