Loading...
LoshaPanda avatar LoshaPanda 10 Точки

C++ static members in classes with namespaces

Здравейте, имам един странен проблем, който не мога да го разреша от няколко дена.
ето този код :

https://sourceb.in/de393fccd0
ми показва тези грешки ( прикачена снимка ), но

https://sourceb.in/6518491c64 се компилира

Разликата в кодовете е там, че във вторият статик вектора ( x ) и статик интеграла elements е изведен в namespace-а, а не в класа, като в първия, поради тази причина не съм писал scope от типа на Resourec:: когато искам да взема вектора или интеграла.

Някой имал ли е подобни проблеми и вижда ли нещо, което не е наред ?

0
C++ Advanced
MartinBG avatar MartinBG 4803 Точки

Статичните мембъри на класа трябва да се инициализират експлицитно, като в общия случай това се прави някъде извън декларацията/имплементацията на самия клас.

За конкретният пример:

namespace SoftUni
{
  class Resource
  {
    //...
    public:
      static std::vector<ResourceType> x;
      static int element;
    //...
  };

  std::vector<ResourceType> Resource::x = {};
  int Resource::element = 0;

  // ...
}

 

Повече по темата:

Static member variables

STATIC VARIABLES AND STATIC CLASS MEMBERS

Static Members of a C++ Class

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.