いつ/私のコンストラクタを明示的に削除したいのですか?その理由がその使用を防ぐことを前提としているのであれば、それをprivate
にするのはなぜですか?なぜ明示的にコンストラクタを削除しますか?
class Foo
{
public:
Foo() = delete;
};
ありがとうございます!彼らは基本的に異なるものだ
//private constructor
class Foo
{
private:
Foo() {}
public:
static void foo();
};
void Foo::foo()
{
Foo f; //legal
}
対
//deleted constructor
class Foo
{
public:
Foo() = delete;
public:
static void foo();
};
void Foo::foo()
{
Foo f; //illegal
}
:どの程度
これは、 '= default'でうまくいくもので、クラスでも使用できないので、私は個人的に見るのが好きです*削除された関数の使用* over *関数はprivateです*前者は"これは意味しません使用される。それから何かが出てきたら、それを使用できないクラスは実際に意味的な違いを作ります。 – chris
私は正直に言うと、人々は近い投票で積極的になるようになってきていると思います。どのように建設的ではないのか分かりません。 –
@LuchianGrigore:同意しました。私はなぜコミュニティが自分自身にもっと厳しくなったのだろうと思っています。私はその点を見ない。 –