可能重复:
使用空括号调用默认构造函数时出错
为什么下面的代码编译没有问题但是当我换行时
MCl<char, a> tryout;
至
MCl<char, a> tryout();
我收到“错误 C2228:'.ea' 左侧必须有类/结构/联合”?tryout() 不是对默认构造函数的调用吗?
这是完整的代码
template <class T, T myval> class MCl
{
public:
T ea;
MCl() : ea(myval)
{
}
};
int main()
{
const char a = 'e';
MCl<char, a> tryout;
// MCl<char, a> tryout();
cout << tryout.ea;
return 0;
}