可能重复:
回调的缺陷
我在 Qt 文档中读到:
回调有两个基本缺陷:首先,它们不是类型安全的。我们永远无法确定处理函数是否会使用正确的参数调用回调。
我不确定为什么我们不能确定回调参数的正确性。它们不是类型安全的吗,因为在我写的这样的例子中:
void callback( int a ) {
printf( "something" );
}
void ourProcessingFunc( void ( *cb )( int ) ) {
cb( 'a' );
}
int main() {
ourProcessingFunc( callback );
return 0;
}
我们可以将 int 以外的参数传递给回调(在 ourProcessingFunc 中)吗?例如 char 或 long 等?还是因为其他原因它们不是类型安全的?抱歉这个愚蠢的问题,我想确定一下。