我应该在头文件中指定我的类级静态常量吗?
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)中,我应该在哪里声明一个私有静态const变量,如版本号?
static const std::string version;
它究竟适合哪里?它不是真正的成员数据,因为它是静态的。 (不是每个对象)
编辑 - 1:
这些变量是否有特定优先权?它们是在开始时(在ABC类之后的第一个开口大括号之后?或者在我的代码段中的私有关键字之后?)(或者是在typedef之后?)
我当然会在我的abc.cpp文件中提到 const std :: string version =" 10&#34 ;;
编辑2: 我期待像卢卡斯所提到的那样的答案。(请提供有效的推理)
在类似我下面提到的类声明中,应该放置静态变量吗?
请不要提供答案,提到decl需要在.cpp文件中的.h文件和定义中。 - 我已经知道了。
答案 0 :(得分:5)
A.h文件(标题:)
class A {
...
private:
static const std::string version ;
} ;
A.cpp文件(正文,请记住#include "A.h"
:)
const std::string A::version = "10" ;