首页 文章

当我们在类之外定义静态变量时,为什么还需要再次指定数据类型

提问于
浏览 1475
4

我遇到了虚函数问题,并且我被要求创建一个名为 Student 的类 . 该类必须具有名为 cur_id (当前id)的 int 变量 . 这是 class ;

class Student: public Person{

    public:

    static int id;

    Student(){
        cur_id = ++id;
    }


};

int Student::id = 0;

我被要求在创建类的每个新对象时增加cur_id 1 . 所以,我决定在构造函数中增加 cur_id . 如您所见,我在类中声明了 static int 变量为 static int id . 然后我想用 zero 初始化它的值 . 但当我尝试将其作为 Student::id = 0; 时,我无法访问 id 变量 . 我需要再次指定其数据类型,就像我将该变量再次声明为 int Student::id = 0; 一样 . 什么_9470是一个新手问题,可能有一个简单的答案,但我找不到我的答案在另一个主题 . 提前致谢 .

1 回答

  • 7

    第二次你没有声明它 . 你定义它 . 这就是为什么这通常在实现文件(.cpp)中完成,而类声明在头文件(.h)中完成 .

相关问题