なぜ私はこの記述することができます。ここで静的な理由は何ですか?
class VoiceManager
{
public:
static const int mMaxNumOfVoices = 16;
Voice mVoices[mMaxNumOfVoices];
private:
};
を私はこれを使用することはできません。
class VoiceManager
{
public:
const int mMaxNumOfVoices = 16;
Voice mVoices[mMaxNumOfVoices];
private:
};
をそれは言う:「非静的メンバ参照は、特定のオブジェクトを基準にする必要があります」
どちらの場合も、mMaxNumOfVoices
はconst
であり、mVoices
の前にinitになります(コンパイラは宣言順に従います)。
ただし、static
が必要です。どうして?
状況とエラーメッセージをしてください。 – LogicStuff
おそらく、ランタイムまでに 'mMaxNumOfVoices'がどのようなものになるのだろうか? 'static'を使うと、この値を知ることができます。 –
私は 'const'だけではコンパイル時定数にならないと思いますが、' static const'は – torkleyy