C 基礎09 類內初始化,預設建構函式

2021-10-10 21:38:16 字數 1638 閱讀 6631

1.1 宣告時初始化成員變數

#ifndef day02_time_h

#define day02_time_h

//類的宣告

class

time

;#endif

//day02_time_h

#include

using

namespace std;

#include

"time.h"

intmain()

1.2 const成員變數的初始化

const成員變數的初始化主要通過兩種方式:

(1)在變數宣告時給初值進行初始化。

(2)利用建構函式的初始化列表進行初始化。

#ifndef day02_time_h

#define day02_time_h

//類的宣告

class

time

;#endif

//day02_time_h

#include

using

namespace std;

#include

"time.h"

time::

time

(int hour)

:m_second(18

)//const成員變數可以利用建構函式初始化列表進行初始化

intmain()

2.1 定義

不帶引數的建構函式被稱為預設建構函式。

類定義中,在沒有建構函式的情況下,系統會自動為我們隱式的定義乙個預設建構函式。

一旦我們自己定義了乙個建構函式,不管該建構函式帶幾個引數,編譯器都不會為我們建立合成的預設建構函式了。

2.2 =default

在特殊的函式中,利用=default替代{}

#ifndef day02_time_h

#define day02_time_h

//類的宣告

class

time

;#endif

//day02_time_h

#include

using

namespace std;

#include

"time.h"

time::

time()

=default

;//等價於time::time(){}

intmain()

2.3 =delete

=delete:讓程式設計師顯示的禁用某個函式

#ifndef day02_time_h

#define day02_time_h

//類的宣告

class

time

;#endif

//day02_time_h

#include

using

namespace std;

#include

"time.h"

intmain()

C 基礎 預設初始化

預設情況下,動態分配的物件是預設初始化的,這意味著內建型別或組合型別的物件值將是未定義的,而類型別物件將採用預設建構函式進行初始化。預設初始化 int i int pi new int 預設初始化,採用預設建構函式,內建型別無缺省構造,值不確定 string str string pstr new ...

建構函式初始化(預設構造)

當且僅當沒有定義任何建構函式時,編譯器才會提供預設建構函式。為類定義了建構函式後,程式設計師就必須為他提供預設建構函式。我們怎麼理解這句話呢?首先,什麼是預設建構函式?預設建構函式時在未提供顯示初始化時,用來建立物件的建構函式。也就是說,它是用於下面這種宣告的建構函式 expa expa 然後我們看...

預設初始化建構函式

預設建構函式 定義 可以不通過提供任何實際引數就能呼叫的建構函式稱為預設建構函式 如果定義了乙個陣列 但是沒有提供初始值 如 x ax 100 如果類x 沒有預設建構函式 則會產生編譯錯誤 例項 class x 預設建構函式 x int v 建構函式 x int v1,int v2 同上 priva...