Предположим, у меня есть этот класс:
class __declspec(dllexport) MyClass
{
public:
static int Bar;
static MyOtherClass Foo;
private:
static int OtherStuff;
};
У меня есть несколько вопросов (я использую компилятор MSVC):
- Будет ли статический член "Bar" доступен для клиентов, импортирующих этот класс?
- Будет ли также экспортирован статический член "OtherStuff"? Если нет, это из-за модификатора доступа,
private:
?
- Если класс
MyOtherClass
не определен с __declspec(dllexport)
, я считаю, что это означает, что предупреждение C4251
будет выдано компилятором MSVC, но означает ли это, что переменная Foo
не будет доступна для клиентов, которые импортируют этот класс?
В основном я просто выполняю различные сценарии в своем уме, пытаясь выяснить, что экспортируется, а что нет (и, следовательно, недоступно) в интерфейсе класса DLL в терминах только статических членов данных.