プログラムをデバッグしています。一部のクラスに対してコピーコンストラクターが呼び出されているかどうかを知る必要があります。コピーコンストラクターを定義していないため、コンパイラーが生成しました。私はそれを定義してそこに入れようとしましcout
たが、今はコピー部分を手動で書かなければなりません。クラスが大きいのでやりたくない。コピーコンストラクターが呼び出されたかどうかを確認する方法はありますが、そのメンバーのコピーを作成することは避けてください。コピー コンストラクターの既定の実装を呼び出すにはどうすればよいですか?
質問する
1520 次
1 に答える
10
ミックスインを使用できます:
template<class D>
struct traced
{
public:
traced() = default;
traced(traced const&) { std::cout << typeid(D).name() << " copy ctor\n"; }
protected:
~traced() = default;
};
そして、次のようにクラスから継承します。
class my_class : public traced<my_class>
{
// usual stuff...
};
于 2013-11-02T16:00:44.070 に答える