C 類建構函式 析構函式

2021-07-27 23:03:56 字數 2243 閱讀 7621

類的建構函式是類的一種特殊的成員函式,它會在每次建立類的新物件時執行。

建構函式的名稱與類的名稱是完全相同的,並且不會返回任何型別,也不會返回 void。建構函式可用於為某些成員變數設定初始值。

下面的例項有助於更好地理解建構函式的概念:

#include

using

namespace

std;

class

line

;// 成員函式定義,包括建構函式

line

::line

(void

)void

line

::setlength

(double

len

)double

line

::getlength

(void

)// 程式的主函式

intmain()

當上面的**被編譯和執行時,它會產生下列結果:

object

isbeing created

length

of line

:6

預設的建構函式沒有任何引數,但如果需要,建構函式也可以帶有引數。這樣在建立物件時就會給物件賦初始值,如下面的例子所示:

#include

using

namespace

std;

class

line

;// 成員函式定義,包括建構函式

line

::line

(double

len)

void

line

::setlength

(double

len

)double

line

::getlength

(void

)// 程式的主函式

intmain()

當上面的**被編譯和執行時,它會產生下列結果:

object

isbeing created

,length =10

length

of line :10

length

of line

:6

使用初始化列表來初始化字段:

line

::line

(double

len):

length

(len

)

上面的語法等同於如下語法:

line

::line

(double

len)

假設有乙個類 c,具有多個字段 x、y、z 等需要進行初始化,同理地,您可以使用上面的語法,只需要在不同的字段使用逗號進行分隔,如下所示:

c::c

(doublea,

doubleb,

doublec):

x(a),

y(b),

z(c)

類的析構函式是類的一種特殊的成員函式,它會在每次刪除所建立的物件時執行。

析構函式的名稱與類的名稱是完全相同的,只是在前面加了個波浪號(~)作為字首,它不會返回任何值,也不能帶有任何引數。析構函式有助於在跳出程式(比如關閉檔案、釋放記憶體等)前釋放資源。

下面的例項有助於更好地理解析構函式的概念:

#include

using

namespace

std;

class

line

;// 成員函式定義,包括建構函式

line

::line

(void

)line

::~line

(void

)void

line

::setlength

(double

len

)double

line

::getlength

(void

)// 程式的主函式

intmain()

當上面的**被編譯和執行時,它會產生下列結果:

object

isbeing created

length

of line :6

object

isbeing deleted

C 類建構函式 析構函式

類的建構函式是類的一種特殊的成員函式,它會在每次建立類的新物件時執行。建構函式的名稱與類的名稱是完全相同的,並且不會返回任何型別,也不會返回 void。建構函式可用於為某些成員變數設定初始值。下面的例項有助於更好地理解建構函式的概念 include using namespace std class...

C 類建構函式 析構函式

類的建構函式是類的一種特殊的成員函式,它會在每次建立類的新物件時執行。建構函式的名稱與類的名稱是完全相同的,並且不會返回任何型別,也不會返回 void。建構函式可用於為某些成員變數設定初始值。下面的例項有助於更好地理解建構函式的概念 include using namespace std class...

C 類建構函式 析構函式

析構函式和建構函式是一對。建構函式用於建立物件,而析構函式是用來撤銷物件。簡單的說 乙個物件出生的時候,使用建構函式,死掉的時候,使用析構函式。建構函式 和 析構函式 各有各的用途,在建構函式中,我們來獲取資源 在析構函式中,我們來釋放資源。釋放了之後,這些資源就會被 可以被重新利用。比如說,我們在...