0

Я только начал изучать возможности создания многофайловых проектов в С++ и столкнулся с проблемой - при попытке написать 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
  • @HolyBlackCat спасибо вам огромное – BlackSwordsman Oct 08 '22 at 18:54

0 Answers0