類內 外定義 建構函式 析構函式

2021-07-26 20:40:42 字數 1524 閱讀 1866

內聯函式

(1)類內定義時,定義的函式會預設為內聯函式(inline);(優先編譯為內聯函式)

(2)類外定義

分為同檔案類外定義和分檔案類外定義。

要寫::這個符號(同檔案類外定義)

寫: 標頭檔案#include「 」 (分檔案類外定義)

(3)ex:

要求:定義乙個teacher類,要求分別採用同檔案類外定義和分檔案類外定義的方式完成,資料成員有:名字,年齡,性別;成員函式為:資料成員的封裝函式授課teach。

#include

#include

using

namespace

std;

class teacher

;//類外定義

void teach::setname(string _name)

string teach::getname()

void teach::setgender(string _gender)

string teach::getgender()

void teach::set

//以此類推/*.

..*/int main(void)

分檔案類外定義:在標頭檔案下建立乙個.h檔案,在原始檔下建立乙個.cpp檔案。

(1)棧區(記憶體由系統控制)

int x = 0; int *p = null;

(2)堆區(new分配的記憶體將分配到堆區,需要程式設計師自己釋放)

int *p = new int[20];

(3)全域性區

儲存全域性變數和靜態變數

(4)常量區

string str = 「hello」;

(5)**區

儲存邏輯**的二進位制

(1)有且僅有一次

為了避免誤操作:比如忘記呼叫初始化函式,或者多次呼叫初始化函式

這裡引入了——>建構函式

(2)根據條件進行初始化

建構函式在物件例項化時被自動呼叫(被呼叫僅被呼叫一次)

建構函式與類同名

建構函式無返回值

建構函式有多個過載形式

例項化物件時僅用到乙個建構函式

當用書沒有定義建構函式時,編譯器自動生成乙個建構函式。

(1)無參建構函式

(2)有引數建構函式(引數帶預設值,引數無預設值)

(3)過載建構函式

(1.1)預設建構函式(屬於無參建構函式)

techer(string name = 「jim」,int age =15);

初始化列表

正常初始化:

name,int age)

初始化列表初始化:

name,int age):m_strname(name),m_iage(age);

string getname()

private:

string m_strname;

};int main(void)

類建構函式 析構函式

下面的例項有助於更好地理解建構函式的概念 include using namespace std class line 成員函式定義,包括建構函式 line line void void line setlength double len double line getlength void 程式的...

類建構函式,類析構函式

類建構函式 the class constructor 是乙個特殊的類成員函式,當我們建立這個類的新物件時,會被執行。乙個建構函式將被確定與類名相同的名字,沒有任何返回值,包括void。建構函式對於給某些類成員變數設定初始值非常有用。例子 include using namespace std cl...

C 類建構函式 析構函式

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