Oświadczenie cout w tej pętli:C++ cout nadpisywania się natomiast w pętli for
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;
}
tworzy jakieś dziwne zachowanie, co cout należy wydrukować coś takiego:
Nazwa: Ilość Mike Sanderson Reg: 10101
jednak którym faktycznie wypisuje go:
Numer rejestracyjny: 10101on
Wydaje mi się, że po drugiej części zestawienia cout jest powrót do początku linii i nadpisanie się, ale dlaczego? Mam nadzieję, że możesz mi pomóc, a jeśli potrzebujesz więcej informacji, daj mi znać!
"Student" nie miałby w nim wskaźnika, który jest przydzielany dynamiczną pamięcią, nie przestrzegając reguły trzech, czyż nie? – chris
Jakiego typu jest 'name'? Co zwraca 'a.getName()'? (Umieść punkt przerwania debugowania tuż przed linią 'cout' i zobacz, co jest w' name' i 'regno'.) –
@DavidSchwartz tak Powinienem był napisać to przepraszam, nazwa to std :: string i a.getName() zwraca a std.string do –