typedef声明函数指针及要注意的问题
来源:互联网 发布:北京东方怡达网络招聘 编辑:程序博客网 时间:2024/05/24 03:22
#include<iostream>
using namespace std;
typedef void (*PEN)();
class A
{
public:
void foo(){
run(func);
}
private:
void run(PEN pfn){
pfn();
}
void func(){
cout<<"ok"<<endl;
}
};
int main()
{
A a;
a.foo();
return 0;
}
这样编译是通不过的,error C2664: 'run' : cannot convert parameter 1 from 'void (void)' to 'void (__cdecl *)(void)'
原因typedef定义的PEN是指向普通函数的,不能指向类的成员函数,这是有区别的。
把A的定义改成这样就行了
class A
{
public:
typedef void (A::*PEN)();
void foo(){
run(func);
}
private:
void run(PEN pfn){
(this->*pfn)();
}
void func(){
cout<<"ok"<<endl;
}
};
- typedef声明函数指针及要注意的问题
- 使用typedef简化函数指针的声明及定义
- typedef 声明函数指针
- 使用typedef简化函数指针的声明
- 指向函数的指针、typedef、奇特的声明
- 理解复杂的C/C++声明 const, typedef , 函数指针
- 理解复杂的C/C++声明 const, typedef , 函数指针
- 理解复杂的C/C++声明 const, typedef , 函数指针
- 理解复杂的C/C++声明 const, typedef , 函数指针
- 理解复杂的C声明 const, typedef , 函数指针
- typedef的理解及复杂函数声明的理解
- 函数指针的typedef
- 读书笔记--typedef的有关指针声明
- 对外部函数的声明要注意
- C语言声明:const、typedef、define及函数高级声明
- C语言中的声明--函数声明、指针函数、函数指针、typedef
- 理解复杂的C/C++声明 const, typedef , 函数指针(转贴)
- 关于C语言声明、指针、数组、函数、typedef等等的一通“超级扯”
- 配置,链接access数据库
- AfxMessageBox
- .aspx页面弹框
- OpenGL---GLUT教程(九) GLUT鼠标
- php字符串之间多空格,采用特殊字符分离
- typedef声明函数指针及要注意的问题
- OpenGL---GLUT教程(一) GLUT简介,体系
- cmake中lib库的路径设置
- 常见EXCEL 导出方案
- listview android:cacheColorHint,android:listSelector属性作用
- OpenGL---GLUT教程(二) GLUT初始化
- Tomcat安装与配置
- Ext.Loader is not enabled, so dependencies cannot be resolved dynamically. Missing required class: A
- 三种东西从来不应该放到数据库中