簡體   English   中英

在.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文件中聲明矢量,如下所示:

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

struct Bclass A之外是未知class A因此必須在全局范圍內將其引用為A::B

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM