这个for循环中的cout语句:
创建一些奇怪的行为,cout 应该打印出以下内容: “Name: Mike Sanderson Reg Number: 10101”
然而实际上它打印出了以下内容: “Reg Number: 10101on”
在我看来,在第二部分 cout 语句之后,它返回到行的开头并覆盖自己,但为什么呢? 希望你们能帮助我,如果需要更多信息,请让我知道!
for (vector<Student>::iterator qw = students.begin(); qw != students.end(); ++qw){
Student a = *qw;
name = a.getName();
regno = a.getRegNo();
std::cout << "Name: "<< name << " Reg Number: " << regno << endl;
}
创建一些奇怪的行为,cout 应该打印出以下内容: “Name: Mike Sanderson Reg Number: 10101”
然而实际上它打印出了以下内容: “Reg Number: 10101on”
在我看来,在第二部分 cout 语句之后,它返回到行的开头并覆盖自己,但为什么呢? 希望你们能帮助我,如果需要更多信息,请让我知道!
Student
里面不会有一个指针分配了动态内存而没有遵循三法则,对吗? - chrisname
是什么类型?a.getName()
返回什么?(在cout
行之前设置一个调试断点,查看name
和regno
中的内容。) - David Schwartz