#include <iostream>
using namespace std;
template <class X, class Y>
class A:
{
public:
X r;
Y s;
A() { cout << "hi" << endl; }
A(X r, Y s) { cout << r << " " << s << endl; }
};
int main()
{
int val1 = 0;
float val2 = 0;
char c;
cin >> val1;
cin >> val2;
cin >> c;
A<char> a;
A<int, char>(val1, c);
A<char, float>(c, val2);
return 0;
}
由于该行的A<char> a;
参数太少,因此无法编译该代码。
我想A()
在该类中执行该函数,但似乎总是认为它需要更多的参数。有人可以告诉我为什么吗?
现在,您设置模板的方式始终必须指定类型X
和Y
。如果您将第二个模板指定为默认模板,则可以仅使用第一个模板调用它,而代码将假定第二个为默认模板:
template <class X, class Y = char>
在这种情况下,默认值为char
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句