亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么設置類的對象時對象的名字要和類一樣

#include <iostream>

#include <string>

using namespace std;


/**

? * 定義類:Student

? * 數據成員:m_strName

? * 數據成員的封裝函數:setName()、getName()

? */

class Student

{

public:

? ? // 定義數據成員封裝函數setName()

? ? void setName(string _name)

? ? {

? ? ? ? m_strName = _name;

? ? }

? ??

? ? // 定義數據成員封裝函數getName()

? ? string getName()

? ? {

? ? ? ? return m_strName;

? ? }

? ??

//定義Student類私有數據成員m_strName

private:

string m_strName;


};


int main()

{

? ? // 使用new關鍵字,實例化對象

Student *str = new Student();

? ? // 設置對象的數據成員

str->setName("慕課網");

? ? // 使用cout打印對象str的數據成員

? ? cout << str->getName() << endl;

? ? // 將對象str的內存釋放,并將其置空

delete str;

str = NULL;

return 0;

}

這里為什么Student *str = new Student()括號前一定是Student,改成別的就無法通過。

正在回答

3 回答

因為你要申請一個堆的內存空間,來實例化一個STUDENT的類,若果你用別的名字,空間大小就不是這個類的大小里,你怎么用這段內存來實例化Student

0 回復 有任何疑惑可以回復我~

New的時候,會默認執行類的無參構造方法,而構造方法的名字必須和類名一樣,所以Student()自然不能被改啊,因為必須構造方法,這個方法默認隱藏,你也可以寫出來,都一樣

0 回復 有任何疑惑可以回復我~

因為這里是使用new來實例化Student這個對象呀,相當于利用new函數把Student這個對象來放到main函數里面

0 回復 有任何疑惑可以回復我~
#1

云海醬 提問者

那為什么對象的名字要和類一樣呢
2018-07-11 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之封裝篇(上)
  • 參與學習       103391    人
  • 解答問題       732    個

封裝--面向對象的基石,本教程力求幫助小伙伴們即學即會

進入課程

為什么設置類的對象時對象的名字要和類一樣

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號