如何在c++中使用模板
How can I use a template in C++?
本文关键字:c++ 更新时间:2023-10-16
我希望使用在a类中具有默认参数l
的模板,但是程序产生错误:
class B {
public:
B(){
...
}
}
template <int l = 1>
class A {
public:
A(const B& b){
...
}
}
int main(){
B b;
A(b) a; // error: missing template arguments before '(' token
A<5>(b) a; // error: expected ';' before 'a'
}
我该如何解决这个问题?
试试这个
A<> a(b);
A<5> a(b);
仅仅因为它是一个模板化类并不会改变初始化语法:
A<5> a(b);
使用默认参数:
A<> a(b);
尝试一下A<> (b);获取默认值
你需要在你的类定义后面加一个分号。
A
是一个模板,所以无论是否提供默认值,您都必须提供模板括号。
A<> a(b);
如果你不想使用模板括号,你可以使用typedef
声明来避免它:
typedef A<> X;
您遇到的其他错误是由于您没有以分号结束类定义。
下面是一个工作程序——http://ideone.com/occE71#view_edit_box
相关文章:
- 没有找到相关文章