При объявлении и определении структуры с помощью элемента stati c того же типа я не могу понять, как определить значение.
У меня есть структура, содержащая две строки. Я хочу, чтобы была определенная / постоянная версия, к которой я могу получить доступ из самого типа. Для этого я объявляю stati c членов в заголовке и пытаюсь определить их в классе.
Заголовок:
//.h
#pragma once
#include "BaseStruct.h"
#include<string>
namespace A {
namespace B{
struct MyStruct : A::C::BaseStruct
{
MyStruct(std::string s1, std::string s2);
static MyStruct myStaticStruct;
};
}
}
Класс:
//.cpp
#include "BaseStruct.h"
#include "MyStruct.h"
namespace A {
namespace B {
struct MyStruct : A::C::BaseStruct
{
MyStruct(std::string s1, std::string s2) : BaseStruct(s1, s2)
{}
};
// I have been trying to define MyStaticStruct here.
}
}
Как мне определить элемент stati c, объявленный в заголовке? Я не могу получить доступ к члену stati c, используя:
MyStruct::MyStaticStruct
, но я должен использовать:
A::B::MyStruct::MyStaticStruct
Почему я не могу получить доступ к члену stati c даже хотя я в пространстве имен A :: B? И, конечно же, как мне определить значение для этого члена?