私はタイプclass A
の要素を持つベクトルを持っています。クラスA
には、明示的に定義されたコピーコンストラクタがありますが、コピー演算子はプライベートで定義されていません(これは使用するためのものではありません)。ベクトルの下に新しい要素を挿入すると、vector.insert(...)はコンストラクタまたは代入演算子を呼び出しますか?
A walker; //This calls the default constructor.
std::vector<A> vec;
std::vector<A>::iterator it = vec.begin();
vec.insert(it, walker); //Shouldn't this call the copy constructor?
コピーオペレータがプライベートであると不平を言うエラーが発生します。しかし、ベクトルはコピーコンストラクタを使用するべきではありませんか?
どちらかを実装する場合は、**とにかく** .... –