簡體   English   中英

當Templated類實例在另一個類中用作成員變量時,需要一個類型說明符

[英]Expect a type specifier when Templated class instance used in another class as member variable

我有兩個類A和B。A是模板類,它具有帶有一個整數參數的構造函數。 另一個類B將A的實例與int模板參數一起使用。 現在的問題是,當我編譯程序時,它說類型是期望的。

這是程序。

template <typename T>
class A
{
public:
    A(std::size_t max_size)
    {

    }
};

class B
{
    A<int> list(100);
};

我在遇到編譯問題

A<int> list(100);

線。

提前致謝。

改變這個

A<int> list(100);

以例如

A<int> list<int> li(100); 

即提供一個類型(這里我提到了int

編譯器解析該行時

A<int> list(100);

它認為您正在嘗試聲明一個名為list的函數,其返回類型為A<int> 它嘗試解析括號中的內容以找到參數類型,默認值等。它希望找到一個類型,但是會找到一個數字

我猜您打算使用:

 A<int> list[100];

它聲明list為100 A<int>的數組。

如果要使用100作為A<int>的構造函數的參數,則必須使用:

class B
{
    B() : list(100) {}
    A<int> list;
};

暫無
暫無

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

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