假设已经定义好了一个Student类,下面是main函数:
void main()
{
vector<Student> allStudents;
Student s1("张三");
allStudents.push_back(s1); //将s1对象插入数组尾部
s1.SetName("李四"); //修改s1对象的名字
allStudents[0].Show();
}
上面代码的意思是:首先创建一个学生数组,然后创建一个学生的对象,把对象插到数组里,然后通过对象修改学生姓名,再打印输出数组中第一个元素(也就是我们刚刚修改了姓名的学生对象)
发现运行结果如下:
并没有修改名字为“李四”
这是因为我们创建了两个Student对象,数组里的Student对象和s1对象是两个不一样的对象
我们修改了三处地方:
vector<Student*> allStudents;
Student s1("张三");
allStudents.push_back(&s1); //将s1对象插入数组尾部
s1.SetName("李四"); //修改s1对象的名字
allStudents[0]->Show();
修改后再运行一下:
总结:用指针进行对象间的关联,两个指针就可以指向同一个对象