【问题标题】:Defining a static member in .cpp file which requires access to private struct在需要访问私有结构的 .cpp 文件中定义静态成员
【发布时间】:2015-09-21 00:26:13
【问题描述】:

因此,要声明类的静态成员,需要在 .cpp 文件中定义该成员,以避免出现未解决的外部链接器错误。我的问题是我的静态成员需要定义一个私有结构,该结构在 .cpp 文件中对我的静态成员不可用。

    //foo.h
    class A
    {
    public:
        ...
    private:
        struct B
        {
            ...
        };

        class C
        {
        public:
            ...
        private:
            static std::vector<std::shared_ptr<B>> someVector;
        } D;
    };

【问题讨论】:

    标签: c++ static-members


    【解决方案1】:

    你应该像这样在 cpp 文件中声明向量:

    std::vector<std::shared_ptr<A::B>> A::C::someVector;
    

    struct Bclass A 之外是未知的,因此它必须在全局范围内引用为A::B

    【讨论】:

      猜你喜欢
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      相关资源
      最近更新 更多