C 類和物件

2021-10-02 18:08:06 字數 4701 閱讀 2225

類的定義和例項化

**示例

萬物皆物件,任何一種事物都可以看做是物件。

通過物件的屬性(名詞、數量詞、形容詞)和行為(動詞)來描述物件。

例如:描述冰箱物件

對自然世界中物件的觀察引入到程式設計實踐的一種理念和方法,這種方法稱為「資料抽象」,即在描述物件時把細節的東西剝離出去,只考慮一般性的、有規律性的、統一性的東西。

類是將多個物件的共性提取出來定義的一種新的資料型別,是對物件屬性和行為的抽象描述。

現實世界到類到程式設計世界

具體物件–抽象–>屬性/行為–例項化–>具體物件

struct/class 類名:繼承方式  基類//建構函式

~類名(void)

//析構函式

返回型別 函式名(形參表)

//成員函式

資料型別 變數名;//成員變數

};

訪問控制限定符:影響類中成員的訪問位置

public:公有成員,在任何位置都可以訪問。

private:私有成員,只有類的內部才能訪問。

protected:保護成員。

建構函式(constructor)

語法:

class 類名

};

類名 物件(構造實參表)

; 類名 物件 = 類名(構造實參表);

類名 物件陣列[元素個數]

=;

建立:類名* 物件指標 = new 類名(構造實參表)

;銷毀:delete 物件指標;

建立:

類名* 物件指標 = new 型別[元素個數]

;銷毀:

delete[

] 物件指標;

型別轉換建構函式(單參建構函式)

class 目標型別};

可以實現源型別到目標型別的隱式轉換。

注:使用explicit關鍵字,可以強制這種轉換必須顯式的完成。

class 類名};

eg:class a;

a a1;

a a2(a1)

;//呼叫拷貝建構函式

class 類名

};

#include

using

namespace std;

class

student

void

who(

void

)private

: string m_name;

int m_age;

int m_no;};

intmain

(void

)

#include

#include

#include

#include

class

clock

void

run(

void)}

sleep(1

);}}

private

:int m_hour;

int m_min;

int m_sec;};

intmain

(void

)

#include

using

namespace std;

class

student

void

who(

void

)private

: string m_name;

int m_age;

int m_no;};

intmain

(void);

sarr[0]

.who()

; sarr[1]

.who()

; sarr[2]

.who()

;//在堆區建立單個物件

student* ps =

newstudent

("貂蟬",17

,10015);

ps->

who();

//(*ps).who()

delete ps;

ps =

null

;//在堆區建立多個物件,c++11

student* parr =

new student[3]

; parr[0]

.who()

;//(*(parr+0)).who()

parr[1]

.who()

; parr[2]

.who()

;delete

parr;

parr =

null

;return0;

}

#include

using

namespace std;

class

aint m_data;};

class

bint m_num;

//基本型別

a m_a;

//類 型別(成員子物件)};

intmain

(void

)

#include

using

namespace std;

class

integer

//int->integer

//型別轉換建構函式

/*explicit*/

integer

(int data)

void

print

(void

)private

:int m_data;};

intmain

(void

)

#include

using

namespace std;

class

a//拷貝建構函式a(

const a& that)

int m_data;};

intmain

(void

)

#include

using

namespace std;

classaa

(const a& that)

int m_data;};

classb;

intmain

(void

)

#include

using

namespace std;

classaa

(const a& that)};

void

foo(a a)

a bar

(void

)int

main

(void

)

#include

using

namespace std;

class

student

*///使用初始化表:定義成員變數同時初始化

student

(const string& name,

int age,

int no)

:m_name

(name)

,m_age

(age)

,m_no

(no)

void

who(

void

)private

: string m_name;

int m_age;

int m_no;};

intmain

(void

)

#include

using

namespace std;

class

aint m_data;};

class

b a m_a;};

intmain

(void

)

#include

using

namespace std;

class

employee

void

calsalary

(void

)public

:void

setid

(int id)

void

setname

(const string& name)

void

setsalary

(double salary)

private

:int m_id;

//工號

string m_name;

//姓名

double m_salary;

//工資};

intmain()

C 類和物件 類和物件

c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...

C 物件和類

1,特殊的類 字串string include include using namespace std int main 類似於標準庫函式,我們不需要記住每種 類 的全部操作,只需要在使用過程中記住一些常用的操作就可以了。如果有需要的話,可以求助於相關書籍或網路 2,當我們對string進行種種操作...

C (類和物件)

類成員函式 類的成員函式指標那些把定義和原型寫在類定義內部的函式,就想類定義中的其他變數一樣。類訪問修飾符 類成員可以定義為public,private或protected。預設情況下是定義為private。建構函式 類的建構函式是一種特殊的函式,在建立乙個新物件是呼叫。析構函式 類的析構函式也是一...