C 從入門到放棄之 類和物件基本認知

2021-10-23 13:52:00 字數 2451 閱讀 1049

struct

/class 類名:繼承方式 基類,..

.//建構函式

~類名(

void

)//析構函式

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

//成員函式

資料型別 m_變數名;

//成員函式

};

public

公有成員: 在任何位置都可以訪問,類的內部和外部都可以訪問

private

私有成員: 只有類的內部成員才可以訪問,不可以通過類的物件直接訪問,可以通過類的公有成員函式來訪問私有成員變數或者私有成員函式

在繼承特性中,基類的私有成員對於派生類(子類)成員和友元是不能訪問的

protected

保護成員只有類的內部成員才可以訪問,不能通過類的物件直接訪問,可以通過公有成員函式來訪問私有成員變數或者私有成員函式

在繼承特性中,基類的保護成員對於派生類成員和友元是可以訪問的

預設訪問屬性

struct定義的類 預設的訪問屬性是public

class定義的類 預設的訪問屬性是private

code

#include

using

namespace std;

//定義乙個描述學生物件的屬性和行為

//行為:成員函式

//屬性:成員數量

class

student

//行為二

void

sleep

(int hour)

//行為三

void

learn

(const string& course)

//行為四

void

who(

void

)public

:void

setname

(const string& newname)

void

setage

(int newage)

void

setno

(int newno)

private

://屬性

string m_name;

//姓名

int m_age;

//年齡

int m_no;

//學號};

intmain

(void

)

#include

using

namespace std;

class

stustu

(string &name,

int age,

int no)

:m_name

(name)

,m_age

(age)

,m_no

(no)

void

who(

)void

setname

(string& name)

private

: string m_name;

int m_age;

int m_no;};

intmain()

類名 物件(構造實參表)

;//建立物件,呼叫有參建構函式直接初始化

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

;//拷貝初始化,編譯器執行時會優化成上面那種,實際效果是等價的

類名 = 單個構造實參;

//單引數為乙個時,等價拷貝初始化

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

=;

//建立

類名 *物件指標 =

new 類名(構造實參表)

;//new操作符分配記憶體後會自動呼叫建構函式,完成物件的建立和初始化;而如果是malloc只會分配記憶體,不會呼叫建構函式,不具備建立物件的能力.

//銷毀

delete 物件指標;

//delete會在delete物件時呼叫物件的析構函式

//建立

類名 *物件指標 =

new 類名[元素個數]

//銷毀

delete

物件指標;

物件指標 =

null

;//呼叫delete 會自動呼叫陣列中每個物件自己的析構函式,有幾個例項化物件就會呼叫幾次析構函式

C 從入門到放棄之 C 繼承基本語法

class struct 類名 繼承方式 基類,繼承方式 基類,類名 void 返回值型別 函式名 形參表 常屬性 異常說明 訪問控制限定符 資料型別 變數名 成員變數 include using namespace std class human void eat const string foo...

C 從入門到放棄之 C 函式

內聯函式 inline 函式是否構成過載關係與函式的返回值型別無關 通過函式指標呼叫過載關係的函式,由函式指標的型別決定匹配過載的版本 呼叫過載關係的函式時,編譯器會根據形參和實參的匹配程度,選擇最優的匹配版本,一般的匹配規則 完全匹配 常量轉換 公升級轉換 降級轉換 省略號轉換 在操作符過載函式 ...

Web安全從入門到「放棄」之pikachu環境部署

1.首先進行本地伺服器的搭建 先到官方 安裝xampp 安裝完後的軟體介面 如果開啟apache和mysql顯示錯誤的話,可以開啟日誌檢視錯誤資訊,點選logs開啟error.log日誌檢視。很大情況是埠錯誤,這時候可以修改埠,關於這個問題,網上有很多教程,這裡就不講解了 解壓pikachu.zip...