当在另一个类中使用Templated类实例作为成员变量时,需要类型说明符

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

本文关键字:变量 成员 说明符 类型 另一个 实例 Templated      更新时间:2023-10-16

我有两个类A和B。A是模板类,它有一个带整数参数的构造函数。另一个类B使用带有int模板参数的A的实例。现在的问题是,当我编译程序时,它显示预期类型。

这是程序。

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);

它认为您正在尝试声明一个名为list的函数,该函数的返回类型为A<int>。它试图解析副题中的内容,以找到参数类型、默认值等。它希望找到一个类型,但却找到了一个数字

我猜你是想用

 A<int> list[100];

其声明CCD_ 3是100个CCD_

如果要使用100作为A<int>构造函数的参数,则必须使用:

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

更改此

A<int> list(100);

例如

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

i-e提供一种类型(这里我提到了int