typedef struct
{
vector<string> name;
vector<double> score;
}Student;
有個問題,為啥聲明為 Student *stu; 然後 stu->name.push_back(name);運行時會有問題,但是編譯無問題~~ ;
Student stu;
stu.name.push_back(name);
這樣就沒問題,為啥?
答:聲明為 Student *stu ,只是定義個一個指針叫做stu,但是還沒有student實例,你執行stu->的時候,沒有實例。
Student stu; 這樣的話,會默認調用構造函數,創建一個實例 。