#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;
}
私はベクターに犬を挿入することはできません。問題はコピーコンストラクタにあります。コピーコンストラクタでconstを追加すると、コードがコンパイルされます。なぜコピーコンストラクタにconstを追加しなければならないのか不思議です。ベクトルがこのコピーコンストラクタでクラスを挿入できないのはなぜですか?
エラーメッセージは次のとおりです。
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 –
ちょっと、新しい重複リスト編集機能が涼しいです。 –