Есть ученический класс
class Student
{
public:
inline static int current_id_max = 0;
int id = 0;
string name;
public:
Student()
{
id = (++current_id_max);
cout << "Student constructor\n";
}
Student(const string& _name)
{
name = _name;
id = (++current_id_max);
cout << "Student constructor: " << _name << endl;
}
Student(const Student& o)
{
name = o.name;
id = (++current_id_max);
cout << "Student constructor copy: " << name << endl;
}
~Student() { cout << "Student destructor: " << name << endl; }
};
Я хочу создать 5 учеников с параметрами в векторе,
std::vector<Student> school =
{ Student("Tom"), Student("Mike"),Student("Zhang"), Student("Wang"), Student("Li")};
Будет 5 Student constructor: name
и 5 Student constructor copy: name
.
Что я могу сделать, чтобы избежать бесполезного копирования?