Я был последователем в течение долгого времени, но я впервые задаю вопрос.В двух словах, проблема в том,vector<Student*> studentvector
, который является вектором указателей объектов, похоже, возвращает информацию об ученике как student
;но когда я печатаю, чтобы увидеть первый в векторе, работает ли он должным образом, я вижу, что он всегда обновляет первую запись новой поступающей информацией об ученике, хотя при * 1003 проблем не возникает.сколько раз я звоню addStudent(...)
но он заполняет весь вектор информацией последнего студента.Что можно сделать, чтобы преуспеть в заполнении вектора правильной информацией в этом кадре, без использования умных указателей или продвинутых вещей?
Извините, если я неясен в своем вопросе.Вы можете привести меня, чтобы предоставить то, что также необходимо, чтобы понять проблему.Заранее спасибо.
addStudent(const string alias, const string name) throw(StudentException)
{
Student* student = new Student(alias, name)
studentvector.push_back(student);
cout << studentvector.front() << endl;
}
Это реализация Student;
#include "Student.h"
string *Alias;
string *Name;
Student::Student(string alias)
{
Alias = new string(alias);
}
Student::Student(string alias, string name)
{
Alias = new string(alias);
Name = new string(name);
}
Student::~Student()
{
delete Alias;
delete Name;
}
const string& Student::getAlias() const
{
return *Alias;
}
void Student::setAlias(const string& alias)
{
*Alias = alias;
}
const string& Student::getName() const
{
return *Name;
}
void Student::setName(const string& name)
{
*Name = name;
}
Считать, что псевдоним не зарезервирован.