我有两个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);
线。
提前致谢。
答案 0 :(得分:1)
更改此
A<int> list(100);
例如
A<int> list<int> li(100);
i-e提供了一种类型(这里我提到int
)
答案 1 :(得分:1)
当编译器解析行
时A<int> list(100);
它认为您正在尝试声明一个名为list
的函数,其返回类型为A<int>
。它试图解析parantheses中的内容,以找到参数类型,默认值等。它期望找到一个类型,但它找到一个数字
我猜你打算用:
A<int> list[100];
将list
声明为100 A<int>
s。
如果您打算将100
用作A<int>
的构造函数的参数,则必须使用:
class B
{
B() : list(100) {}
A<int> list;
};