为什么静态数据成员必须在类之外定义,为什么不使用静态常量数据成员?

时间:2014-01-21 18:11:50

标签: c++ static

第一个问题: -

为什么必须在类之外定义静态数据成员,为什么静态常量数据成员中不会出现同样的概念呢?

静态数据成员的示例: -

#include<iostream>
using namespace std;
class game
{
    static int num;
    int i;
    public:
    void foo()
    {   
        cout<<endl<<num<<endl;
    }
};
int game::num=0;
int main()
{
    game g;
    g.foo();
    return(0);
}

静态常量数据成员的示例: -

#include<iostream>
using namespace std;
class game
{
    static const int num; 
    int i;
    public:
    void foo()
    {   
        cout<<endl<<num<<endl;
    }
};
int game::num=0; \\error why ?
int main()
{
    game g;
    g.foo();
    return(0);
}

第二个问题: -

静态常量数据成员初始化仅允许为整数类型而不是字符串?

#include<iostream>
using namespace std;
class game
{
    static const char name[10]="vikas"; \\ error why ?
    int i;
    public:
    void foo()
    {   
        cout<<endl<<name<<endl;
    }
};
int main()
{
    game g;
    g.foo();
    return(0);
}

0 个答案:

没有答案