#include <iostream>
#include <vector>
using namespace std;
class dog {
public:
dog() {}
dog(dog & d) {
}
};
int main() {
vector<dog> vec;
dog d;
vec.push_back(d);
return 0;
}
Je ne peux pas insérer un chien dans le vecteur. Le problème réside dans le constructeur de copie. Si j'ajoute const dans le constructeur de la copie, le code compile. Je me demande juste pourquoi je dois ajouter const dans le constructeur de copie.Pourquoi le vecteur ne peut-il pas insérer de classe avec ce constructeur de copie?
Le message d'erreur est:
error: binding ‘const dog’ to reference of type ‘dog&’ discards qualifiers
https://stackoverflow.com/questions/1602058/why-is-the-copy-constructor-argument-const –
https://stackoverflow.com/questions/441067/c-push- back-non-const-copy-constructor –
Hey, nouvelle fonctionnalité d'édition de liste en double est cool –