班级定义:
template<class K, class V,
unsigned hashFunc(const K&),
int compFunc(const K&,const K&)=&_compFunc<K> > class X {};
Run Code Online (Sandbox Code Playgroud)
我想在类代码块之外定义一个类方法.像这样:
template<class K, class V,
unsigned hashFunc(const K&),
int compFunc(const K&,const K&)=&_compFunc<K> >
X<K, V, hashFunc, compFunc>::X() { }
Run Code Online (Sandbox Code Playgroud)
g ++ v.4.4.3返回
error:包含'X :: X()'的类的模板参数的默认参数
为什么编译器会抱怨,我怎么能让它工作?
您没有声明或定义构造函数X.此外,您在尝试的X :: X定义中重复了默认模板参数.
这是固定代码,main-ified:
template<class K, class V,
unsigned hashFunc(const K&),
int compFunc(const K&,const K&)=&_compFunc<K> >
class X
{
X();
};
template<class K, class V,
unsigned hashFunc(const K&),
int compFunc(const K&,const K&) >
X<K, V, hashFunc, compFunc>::X() { }
int main()
{
}
Run Code Online (Sandbox Code Playgroud)