Я пытаюсь подсчитать объекты класса сотрудников, используя статическую переменную 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 статус выхода
int Employee::empCount = 0;
после объявления класса Employee. - person Eljay   schedule 17.04.2021