错误 c2955:使用 c++ 模板
ERROR c2955 : using c++ template
template<typename Elem>
class linkeddeque {
private:
dlinkedlist<Elem> d;
int n;
public:
...
void sum_average();
};
template<typename Elem> void linkeddeque::sum_average() { //C2955
cout << "Error!" << endl;
}
template <> void linkeddeque<double>::sum_average() {
int ss = n;
double sum = 0;
double temp[50];
for (int i = 0; i < ss; i++) {
temp[i] = back();
sum = sum + back();
removeback();
}
for (int i = 0; i < ss; i++) {
insertfront(temp[i]);
}
double aver = sum / ss;
cout << "sum : " << sum << " average : " << aver << endl;
}
我想使用专业化来自定义 int/double/float 的sum_average。所以,我使用专业化来运作,但发生了错误。希望任何人都可以说出这段代码有什么问题。
定义类模板成员函数的代码是错误的。改变
template<typename Elem> void linkeddeque::sum_average() {
自
template<typename Elem> void linkeddeque<Elem>::sum_average() {
~~~~~~
无论如何,该错误似乎与专业化无关。
住
未正确模板化您的sum_average()
方法:
template<typename Elem> void linkeddeque<Elem>::sum_average() {
// ~~~~^^^^^^~~~
cout << "Error!" << endl;
}
相关文章:
- .cpp和.h文件中的模板专用化声明
- C++模板来检查友元函数的存在
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- 部分定义/别名模板模板参数
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 如何在c++中为模板函数实例创建快捷方式
- 使用C++中的模板和运算符重载执行矩阵运算
- 有人能分解一下这个c++模板的语法吗
- 如何在c++17中制作一个模板包装器/装饰器
- 模板化建造师专业化
- 调用专用模板时出错"no matching function for call to [...]"
- 模板元程序查找相似的连续类型名称
- 如何在C++20中创建模板别名的推导指南
- 没有名称的C++模板参数
- 具有重复类型的C++可变模板
- 如何将enable-if与模板参数和参数包一起使用
- 没有用于初始化C++中的变量模板的匹配构造函数