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; 这样的话,会默认调用构造函数,创建一个实例 。
//-----------------------精彩评论--------------------------
Student stu;利用默认构造函数初始化stu对象。stu是栈对象,在脱离作用域后自动销毁。