同様に、デフォルトのコピーコンストラクタはすべてのメンバでコピーコンストラクタを呼び出しますか?例えば、クラスがそのような非PODのメンバーを持っている場合:デフォルトの代入演算子は、すべてのメンバーに対して演算子を呼び出しますか?
class A
{
std::string str;
};
...意志デフォルトのコンパイラが生成するコピーコンストラクタと代入演算子の作業が正しく?彼らは文字列のコピーコンストラクタとoperator=
を呼び出しますか、メンバー変数str
のビット単位のコピーを作成しますか?
つまり、std::string
メンバーを持つことは、このクラスにはユーザ実装コピーコンストラクタと代入演算子が必要であることを意味しますか?
"はい、コンパイラ生成のものは正しく動作します。" - constメンバーを持つクラスでさえ? –
@spin_eightそれでもコピーや割り当てはコンパイルされません。 –
@LuchianGrigore:実際には、コピーがコンパイルされます。割り当ては明らかにされません。 @MatthieuM。 –