泛型对象和函数对象
generic object and function object
我尝试编写通用树。我添加了函数对象来比较顶点的值。但我有问题:
头文件的相关部分:
template <typename T,typename Func>
.....
void addData(T dataIn,Func condition){
主要:
#include "gentree.h"
class compare_int {
public:
int operator()(int a,int b){
if (a==b) return 0;
else if (a>b) return -1;
else return 1;
}
};
using namespace std;
int main() {
genTree<int,compare_int> new_tr(5);
new_tr.addData(3,compare_int);
return 0;
}
我收到此行的错误:
new_tr.addData(3,compare_int);
错误是:"')' 标记之前的预期主表达式"和"无效参数 '"有什么想法吗?
在表达式中new_tr.addData(3,compare_int);
3 是一个值,但compare_int
是一个类型。不能将类型作为参数传递给函数。
您可以创建一个单独的值,也可以传递一个临时比较对象,例如
new_tr.addData(3,compare_int());
将类型作为参数而不是对象传递。您必须创建一个 compare_int
类型的对象并像以下方式传递它:
compare_int comparator;
new_tr.addData(3, comparator);
相关文章:
- 如何创建对象函数指针C++映射?
- 为什么我可以改变常量对象中的成员变量,这是返回常量对象函数的结果?
- 如何将对象函数的实例传递给另一个函数
- 调用模板函数的问题"No matching function for call"参数:迭代器、对象函数
- makefile对我的名称空间对象/函数/构造函数的不确定引用
- 将对象函数转换为函数指针
- 非对象函数/类函数C++
- 线程对象函数 C++
- C 将成员对象函数分配给类成员功能
- 使用基本指针调用派生对象函数
- 可以(通过编译器)使用多少个线程来初始化全局对象(函数main之前)
- C++类对象函数
- 对对象::函数的未定义引用
- 无法弄清楚将多个对象函数作为单独的线程调用的语法
- 在提升作用域出口中调用对象函数
- 使用基指针来使用派生对象函数
- 在for_each lambda 中调用对象函数
- C++:: 模板函数 - 从对象函数获取对象的地址
- Qt5 未解析的外部静态元对象函数
- 通过变量使用对象和对象函数