為什么設置類的對象時對象的名字要和類一樣
#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,改成別的就無法通過。
2018-08-04
因為你要申請一個堆的內存空間,來實例化一個STUDENT的類,若果你用別的名字,空間大小就不是這個類的大小里,你怎么用這段內存來實例化Student
2018-07-13
New的時候,會默認執行類的無參構造方法,而構造方法的名字必須和類名一樣,所以Student()自然不能被改啊,因為必須構造方法,這個方法默認隱藏,你也可以寫出來,都一樣
2018-07-11
因為這里是使用new來實例化Student這個對象呀,相當于利用new函數把Student這個對象來放到main函數里面