0

クラス レベルの静的定数をヘッダー ファイルのどこに指定すればよいですか?

class ABC
{
public:
    enum A1
    {
    };

    //Manager functions
    ABC(int x )
    {
        m_x = x;
    };
    viirtual ~ABC();

protected:
    int data;

private:
    //Typedef
    typedef std::pair(int, int) INT_PAIR;
    typedef std::pair(int, int) INT_PAIR1;
    ...
    //functions
    void increment_x();
    //Member data
    int m_x;
    ... whole lot of other data
}

このクラス宣言 (ABC.h) 内のバージョン番号などのプライベート static const 変数はどこで宣言すればよいですか?

static const std::string version;

正確にはどこに収まりますか?これは静的であるため、実際にはメンバー データではありません。(オブジェクトごとではありません)

編集 - 1:

これらの変数には特定の優先順位がありますか? 彼らは最初に行きますか(クラスABCの後の最初の中括弧の直後ですか?それとも私のスニペットのprivateキーワードの直後ですか?(または)typedefの後ですか?)

もちろん、abc.cpp ファイルで const std::string version = "10"; と言及します。

編集 2: Lucas が述べているような回答を期待していました (正当な理由を提供してください)。

以下で言及したようなクラス宣言内のどこに静的変数を配置する必要がありますか?

decl が .h ファイルにあり、定義が .cpp ファイルにある必要があるという回答は提供しないでください。– 私はすでに知っています。

4

1 に答える 1

5

Ah ファイル (ヘッダー:)

class A {
...
private:
    static const std::string version ;
} ;

A.cpp ファイル (本文、覚えておいてください#include "A.h":)

const std::string A::version = "10" ;
于 2012-08-30T23:41:14.370 に答える