C++获取类的成员函数的函数指针详解及实例代码
发布时间 - 2026-01-10 23:14:52 点击率:次C++获取类的成员函数的函数指针详解

用一个实际代码来说明。
class A
{
public:
staticvoid staticmember(){cout<<"static"<<endl;} //static member
void nonstatic(){cout<<"nonstatic"<<endl;} //nonstatic member
virtualvoid virtualmember(){cout<<"virtual"<<endl;};//virtual member
};
int main()
{
A a;
//static成员函数,取得的是该函数在内存中的实际地址,而且因为static成员是全局的,所以不能用A::限定符
void(*ptrstatic)()=&A::staticmember;
//nonstatic成员函数 取得的是该函数在内存中的实际地址
void(A::*ptrnonstatic)()=&A::nonstatic;
//虚函数取得的是虚函数表中的偏移值,这样可以保证能过指针调用时同样的多态效果
void(A::*ptrvirtual)()=&A::virtualmember;
//函数指针的使用方式
ptrstatic();
(a.*ptrnonstatic)();
(a.*ptrvirtual)();
}
可以参考《C++ Primer(3rd)》第532页13.6指向类成员的指针一节~
1.一个指向外部函数的指针声明为:
void(*pf)(char*,constchar*); void strcpy(char* dest,constchar* source); pf=strcpy;
2.一个指向类A成员函数的指针声明为:
void(A::*pmf)(char*,constchar*);
声明的解释是:pmf是一个指向A成员函数的指针,返回无类型值,函数带有二个参数,参数的类型分别是char * 和 const char *。除了在星号前增加A:: ,与声明外部函数指针的方法一样。
3.给成员指针赋值的方法是将函数名通过指针符号&赋予指针名。
如下所示:
class A
{
public:
void strcpy(char*,constchar*);
void strcat(char*,constchar*);
};
pmf =&A::strcpy;
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# C++获取类的成员函数的函数指针
# C++成员函数的函数指针详解及实例
# C++子类父类成员函数的覆盖和隐藏实例详解
# 实例解析C++中类的成员函数指针
# C++中与输入相关的istream类成员函数简介
# 详解C++编程中类的成员变量和成员函数的相关知识
# C++类静态成员与类静态成员函数详解
# c++中string类成员函数c_str()的用法
# C++中Operator类型强制转换成员函数解析
# C++指向类成员函数的指针详细解析
# C++类中的六大默认成员函数详解
# 的是
# 是一个
# 希望能
# 所示
# 不能用
# 谢谢大家
# 二个
# 多态
# virtualvoid
# virtualmember
# void
# nonstatic
# virtual
# main
# strong
# lt
# int
# member
# public
# staticvoid
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
想要更高端的建设网站,这些原则一定要坚持!
昵图网官方站入口 昵图网素材图库官网入口
js实现点击每个li节点,都弹出其文本值及修改
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
简单实现jsp分页
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何打造高效商业网站?建站目的决定转化率
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
如何实现建站之星域名转发设置?
如何在云服务器上快速搭建个人网站?
进行网站优化必须要坚持的四大原则
如何快速启动建站代理加盟业务?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
Laravel怎么实现验证码(Captcha)功能
如何快速生成ASP一键建站模板并优化安全性?
如何获取PHP WAP自助建站系统源码?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
nginx修改上传文件大小限制的方法
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
再谈Python中的字符串与字符编码(推荐)
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
java ZXing生成二维码及条码实例分享
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何快速搭建自助建站会员专属系统?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
详解vue.js组件化开发实践
如何在VPS电脑上快速搭建网站?
企业网站制作这些问题要关注
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
简单实现Android验证码
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
Python高阶函数应用_函数作为参数说明【指导】
如何在IIS中新建站点并解决端口绑定冲突?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
IOS倒计时设置UIButton标题title的抖动问题
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
Internet Explorer官网直接进入 IE浏览器在线体验版网址
Laravel定时任务怎么设置_Laravel Crontab调度器配置

