今天,我定义了一个类,这个类中有静态数据成员.
然后出现了让我意外的情况:
范例(失败):
class ll
{
public:
static CMyWinApp a;
};
void main()
{
CMyWinApp ll::a;//即为全局,又为局部,重定义了啊
} 报错为:
1>e:\graduateproject\consoleapplication7\consoleapplication7\console.cpp(12): error C2655: “ll::a”: 当前范围内的定义或重新声明非法
1> e:\graduateproject\consoleapplication7\consoleapplication7\console.cpp(7) : 参见“ll::a”的声明
1>e:\graduateproject\consoleapplication7\consoleapplication7\console.cpp(12): error C2086: “CMyWinApp ll::a”: 重定义
1> e:\graduateproject\consoleapplication7\consoleapplication7\console.cpp(7) : 参见“a”的声明
范例(成功):
class ll
{
public:
static CMyWinApp a;
};
CMyWinApp ll::a;
void main()
{
}
大家也看到了.在main函数中定义ll类的静态数据成员,失败了.可是在外部定义就成功了.而且错误为重定义.
下面是我自己的想法,如果大家觉得不对的话请指正:
类