У меня есть класс, и я создаю его объект с помощью параметризованного конструктора. В это время были вызваны как параметризованный, так и конструктор по умолчанию.
Вот мой фрагмент:
class student {
string name;
int age;
public:
student() {
cout << "Calling the default constructor\n";
}
student(string name1, int age1) {
cout << "Calling the parameterized const\n";
name = name1;
age = age1;
}
void print() {
cout << " name : " << name << " age : " << age << endl;
}
};
int main()
{
map<int, student> students;
students[0] = student("bob", 25);
students[1] = student("raven", 30);
for (map<int, student>::iterator it = students.begin(); it != students.end(); it++) {
cout << "The key is : " << it->first ;
it->second.print();
}
return 0;
}
Когда я выполняю этот фрагмент, мой вывод будет следующим:
Вызов параметризованной const Вызов конструктора по умолчанию Вызов параметризованной const Вызов конструктора по умолчанию Ключ: 0 имя: bob возраст: 25 Ключ: 1 имя: raven age: 30
Итак, я хочу понять, если я вызываю параметризованный конструктор, почему конструктор по умолчанию был вызван после параметризованного конструктора?