Я только начал изучать возможности создания многофайловых проектов в С++ и столкнулся с проблемой - при попытке написать id-генератор для объектов класса, Visual Studio выдает ошибку:
Ошибка LNK2001 неразрешенный внешний символ "private: static int A::Count" (?Count@A@@0HA)
Я прочитал, что использование ключевого слова static запрещает использовать переменную в других файлах проекта, но как в таком случае можно реализовать id-генератор?
Заголовочный файл:
//classA.h
#pragma once
class A
{
private:
static int Count;
int id;
public:
A();
};
Файл исходного кода:
//classA.cpp
#include "classA.h"
A::A()
{
Count++;
id = Count;
}
staticразные значения. "запрещает использовать переменную в других файлах проекта" Не в этом месте. Ошибка вообще не связана с несколькими файлами, вы забылиint A::Counter = 0;в .cpp-шнике. – HolyBlackCat Oct 08 '22 at 18:41