在.cpp文件中定义需要访问私有结构的静态成员
Defining a static member in .cpp file which requires access to private struct
因此,要声明类的静态成员,需要在.cpp文件中定义该成员,以避免无法解析的外部链接错误。我的问题是,我的静态成员需要一个私有结构的定义,这将不可用于我的静态成员在。cpp文件。
//foo.h
class A
{
public:
...
private:
struct B
{
...
};
class C
{
public:
...
private:
static std::vector<std::shared_ptr<B>> someVector;
} D;
};
您应该在cpp文件中这样声明vector:
std::vector<std::shared_ptr<A::B>> A::C::someVector;
struct B
在class A
之外是未知的,因此必须在全局作用域中引用为A::B
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 如何在C++中定义静态成员结构
- C++标准是否定义了结构中成员函数的函数内定义是否必须具有静态链接?
- 结构内部的结构:"对非静态成员的非法引用"错误
- 指向结构中作为静态成员的函数的指针
- constexpr静态结构类成员的声明冲突
- 有没有办法将数组行为作为静态结构数据成员?
- 在运行时获取/设置模板结构的静态成员
- C++静态结构类型成员初始化
- 静态调度以使用聚合类型的层次结构更正成员方法
- 在cuda中使用静态成员函数模板结构的另一种方法
- 类内定义的静态结构的静态成员的编译时默认值
- 如何保证模板化结构中 const 静态成员的初始化顺序
- 我可以在没有任何前向声明的类/结构上访问静态成员函数吗?
- 嵌套结构:在定义结构指针时使用了无效的非静态成员
- 被视为依赖作用域的函数模板的函数作用域结构体的静态成员函数
- 在.cpp文件中定义需要访问私有结构的静态成员
- 如何从另一个类的结构中引用静态成员变量
- 具有静态成员的静态结构
- 为什么我不能在VS2008的类中使用静态成员,例如静态结构?