時々私はデフォルトのコンストラクタを提供したくないし、コンパイラに自分のクラスのシステムデフォルトのコンストラクタを提供させたくありません。 C++ 11で私のようなことを行うことができます。デフォルトのコンストラクタを削除するにはどうすればいいですか?
class MyClass
{
public:
MyClass() = delete;
};
しかし、現在、私の講師は私が私の割り当てでそれを行うことはできません。問題は、C++ 11以前では、暗黙的にデフォルトのコンストラクタを提供することを停止するようにコンパイラに指示する方法はありますか?
彼の著書「Effective Modern C++」に書かれているScott Meyersは、定義なしにプライベートコンストラクタを残すこともできます。これは、デフォルトのコンストラクターをフレンドクラスから呼び出すことから保護するのに役立ちます(リンクエラーがスローされます)。 – MrPisarik