#include <iostream>
#include <vector>
class Car{
public:
int weight;
Car(int weight): weight(weight){
};
Car(const Car& other){
std::cout<<"copied!"<<std::endl;
this->weight=other.weight;
}
};
int main() {
std::vector<Car> vec;
vec.push_back(Car(1));
return 0;
}
No código acima, de alguma forma, quando eu empurro Car(1) para vec, o construtor de cópia na classe Car é chamado. Por que o construtor de cópia é chamado? Não estou copiando nada aqui.