Подсчет экземпляров объекта, получение неопределенной ссылки на статическую переменную С++

Я пытаюсь подсчитать объекты класса сотрудников, используя статическую переменную int, но она говорит о неопределенной ссылке на переменную. Вот мой код

#include<iostream>
using namespace std;

class Employee{
    int userID;
    string * files;
    
public:
    static int empCount;
    Employee(){
    userID = ++empCount;
    }

   ~Employee(){
    --empCount;
    }

   Employee(string files[100]){
    this->files = files;
    }

   int getID(){
    return this->userID;
   }

 };


 int main(){

    Employee a,b,c;
    cout << c.getID(); //should print 3

 }

Я попытался определить его вне класса, используя также метод класса, но все равно получаю ошибку. Вот что я пробовал после объявления метода setCount внутри класса:

void Employee :: setCount(){
     Employee :: empCount = 0;
     }

Но это все еще дает мне неопределенную ошибку ссылки в конструкторе, деструкторе и методе setCount.

Вот какие ошибки выдает.

/tmp/ccVBLyUG.o: в функции Employee::setCount()': main.cpp:(.text+0xa): undefined reference to Employee::empCount' /tmp/ccVBLyUG.o: в функции Employee::Employee()': main.cpp:(.text._ZN8EmployeeC2Ev[_ZN8EmployeeC5Ev]+0xa): undefined reference to Employee::empCount' main.cpp:(.text._ZN8EmployeeC2Ev[_ZN8EmployeeC5Ev]+0x13): неопределенная ссылка на Employee::empCount' main.cpp:(.text._ZN8EmployeeC2Ev[_ZN8EmployeeC5Ev]+0x19): undefined reference to Employee:: empCount' /tmp/ccVBLyUG.o: В функции Employee::~Employee()': main.cpp:(.text._ZN8EmployeeD2Ev[_ZN8EmployeeD5Ev]+0xa): undefined reference to Employee::empCount' /tmp/ccVBLyUG.o:main.cpp:(.text._ZN8EmployeeD2Ev[_ZN8EmployeeD5Ev]+0x13): следуют дополнительные неопределенные ссылки на `Employee::empCount' collect2: ошибка: ld вернул 1 статус выхода


person Aniruddha789    schedule 17.04.2021    source источник
comment
Вам не хватает int Employee::empCount = 0; после объявления класса Employee.   -  person Eljay    schedule 17.04.2021