c++函数采用具有默认函数的函数指针

标签 c++ function pointers arguments default

假设我有以下功能

int watchVar(const char* var, const char* descriptor,
            Color (*colorfunc)(const char* var) = yellowColorFunc)

Color yellowColorFunc(const void* var){
    return Color::yellow();
}

我想重载 watchVar 以接受参数为 charintfloat 等的函数,但不想为每种类型创建默认颜色函数。

g++ 给出了这个错误:

xpcc::glcd::Color (*)(const char*)' has type 'xpcc::glcd::Color(const void*)

除了将 colorfunc 声明为空指针并强制调用者稍后自己转换参数之外,还有其他方法吗?

谢谢

最佳答案

函数指针被声明为 const char * 但 yellowColorFunc 被声明为 const void *

关于c++函数采用具有默认函数的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18091135/

相关文章:

c - JNI 将 Char* 二维数组传递给 JAVA 代码

c++ - 在嵌套私有(private)类内部的外部类中使用 C++ 公共(public)变量

c++ - 为什么动态内存允许在运行时操作数组?

c++ - 为给定的整数递增单个数字 (msb)

function - 是否有一个函数接受参数列表列表并将每个列表应用于给定函数?

c++ - 从返回引用的函数提前返回的最佳方式

sql - 调用返回记录的 Postgres 函数,传入查询结果

c++ - C++中的指针数组和指向数组的指针

java - 术语:如何谈论 Java 中的指针和引用

c++ - 在 VS2008 中编译 boost property_tree 给出 fatal error C1001