簡體   English   中英

在另一個模板類中使用模板類類型的變量

[英]Using variables of template class type inside another template classes

如何在其他模板類中使用模板類的變量? 關於編譯,我收到錯誤clsC is not a template -為什么?

---- MyClasses.h: ----

template <typename T> class clsA {
public:
    void Foo(typename clsC<T> arg) {...}
    ...
};

template <typename T> class clsB {
public:
    std::vector<clsA<T>> a;
    ...
};

template <typename T> class clsC {
public:
    clsC(typename clsB<T> arg) {...}
    ...
};

有很多類似的問題,但是到目前為止,沒有一個問題解決了我的問題。

您可能必須添加clsC前向聲明。

template<class T> class clsC; 

將此行放在clsA的定義之前。

另外,以下行

std::vector<clsA<T>> a;

應該重寫為

std::vector< clsA<T> > a;

由於編譯器誤解了符號“ >>”。

暫無
暫無

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

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