0

クラス内のデータメンバーはconstにすることができますが、静的な場合に限ります。それ以外の場合は、クラス内の定数を初期化するコンストラクターが必要です。

can we declare a const data member inside a class? //this was an interview question

できるように思えますが、プログラマーがクラス内で定数を宣言するのは適切です。

説明/理由を教えてください、なぜ私たちができるかできないか?

4

3 に答える 3

1

簡単な答え:クラス内に非静的constメンバーを含めることができます。

それでも値を割り当てる必要があるため、許可される場所は初期化リスト内のみです。

そして、まあ、あなたのメンバーが本当に一定しているなら、それは常にそれをする良い理由です。つまり、const-correctnessは主に、コーディングを改善するためのオプションのツールです。必要に応じて使用してください。後で感謝します。そして、あなたがそれを使わないのなら...まあそれは本当に問題ではありません!

于 2011-07-29T12:34:18.720 に答える
1

もちろん、次のことができます。

struct A
{
    A() : a(5)
    {
    }
    const int a;
};

int main()
{
   A a;
}

これは、構造体A内のデータメンバーaが変更されないことを意味します。

于 2011-07-29T12:32:41.147 に答える
1

クラスで使用したい定数があり、クラスに属しているかどうかを確認してください。

たとえば、一意のIDを持つデータ型があるとします。IDは、そのために変更されないオブジェクトを識別します。

class myData {
   cont int ID;
   myData(int newID) : ID(newID) {}
}
于 2011-07-29T12:41:32.000 に答える