我不知道这个问题是否有意义;我有几个通用类型类的公共(public)方法。
template <typename T>
bool className<T>::isEmpty() const {
return root == nullptr;
}
template <typename T>
className<T>::className() {
root = nullptr;
...............
}
template <typename T>
treeNode<T>* className<T> :: routine(treeNode<T>* node) {
.............
.............
}
我不得不写 template<typename T>
每次我实现一个方法。这是不必要的冗余。有没有办法写template<typename T>
一次并将其用于所有方法,例如 -
template<typename T>
void className<T>:: func1() {
............
}
void className<T>:: func2() {
............
}
void className<T>:: func3(T const& param) {
............
}
// somehow ending template<typename T> scope or no need to end as writing
// another template<typename T> will vanish previous effect
最佳答案
嗯,作为@T.C.说——
不幸的是没有。如果你不想要额外的输入,将你的函数定义放在类定义中,特别是对于像 isEmpty()
这样的微不足道的实现函数。或默认构造函数。
此外,宏可用于避免冗长的冗余代码,即 #define Generic template<typename T>
.
关于c++ - 为多个类或函数声明一次模板<typename T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594885/