請問這樣為什么不行
#include <iostream>
#include <string>
using namespace std;
/**
?* 定義類:Student
?* 數據成員:m_strName
?* 無參構造函數:Student()
?* 有參構造函數:Student(string _name)
?* 拷貝構造函數:Student(const Student& stu)
?* 析構函數:~Student()
?* 數據成員函數:setName(string _name)、getName()
?*/
class Student
{
public:
??? Student()
??? {
?? ?
??? }
??? Student(string_name)
??? {
??????? m_strName = _name;
??? };
??? Student(const Student& stu){};
??? ~Student(){};
??? void setName(string);
??? string getName();
private:
??? String m_strName;
};
void setName(string _name)
{
??? m_strName = _name;
}
String getName()
{
??? return m_strName;
}
int main(void)
{
??? // 通過new方式實例化對象*stu
??? Student *stu = new Student;
??? // 更改對象的數據成員為“慕課網”
?? ?stu->setName("慕課網");
??? // 打印對象的數據成員
?? ?cout << stu->getName() << endl;
?? ?delete stu;
?? ?stu = NULL;
?? ?return 0;
}
2021-02-04
你需要注明這個類外定義的函數是屬于Student這個類的。也就是說在類外去實現函數內容的時候函數標題應該是像這樣:void Student::setName(string _name){ //具體內容}?