如何在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

相关文章:
  • 没有找到相关文章