指向 类成员函数 指针的用法
C++在使用函数指针调用类成员函数的时候会遇到很多问题,以下是解决办法:
代码
//test.h class CMyc{ public:int fun(int);typedef int (CMyc::*FUNPTRTYPE)(int);void fun2(int); };//test.cpp #include <iostream> #include "test.h" //写在这也可以 //typedef int (CMyc::*FUNPTRTYPE)(int);int CMyc::fun(int i) {std::cout << i << std::endl;return i; }void CMyc::fun2(int i) {//写在这也可以//typedef int (CMyc::*FUNPTRTYPE)(int);//需要显示取址,普通函数指针赋值时可以省略取址符,但是建议加上,更加明确,易读。FUNPTRTYPE pfn = &CMyc::fun;//这步很重要,可以看到,pfn不是类成员变量,但是在解指针操作后,它的函数需要this->来调用,以获得隐含的this对象。( this->*(pfn) )(i); }int main() {CMyc m_cmyc;m_cmyc.fun2(100);return 0; }
转载于:https://www.cnblogs.com/horane/archive/2013/05/23/3095048.html
指向 类成员函数 指针的用法相关推荐
- 指向 类成员函数 的 函数指针
原文:http://www.vckbase.com/document/viewdoc/?id=1818 一.成员函数指针的用法 在C++中,成员函数的指针是个比较特殊的东西.对普通的函数指针来说,可以 ...
- 类成员函数指针和普通函数指针
前言: 先声明一下,普通函数指针和类成员函数指针有很大的区别!所以在绑定函数的时候也会发生很多的不同的情况,本文就函数指针可能出现的各种情况一一进行分析. 测试目录: 1.普通函数指针指向普通函数 2 ...
- 详解函数指针和类成员函数指针
作者:倾夜·陨灭星尘 一.什么是函数指针? 函数指针,顾名思义即指向函数的指针. 如果要问,为什么能用一个指针指向一个函数呢?我觉得要理解这个问题,以及要理解后面的函数指针和类成员函数指针,没有什么比 ...
- C++ 函数指针 类成员函数指针
一.函数指针 函数存放在内存的代码区域内,它们同样有地址.如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址. 1.函数 ...
- c++中的类成员函数指针
c++中的类成员函数指针 文章目录 c++中的类成员函数指针 发生的事情 正常的函数指针定义 定义类的成员函数指针 std::function 发生的事情 最近,想用一个QMap来创建字符串和一个函数 ...
- C++类成员函数指针使用介绍
前言 在之前写过的博客中有介绍过函数指针和指针函数的区别和简单用法(文章在这里),当时的Demo非常简单,都是C语言的写法,但是当在C++中直接像C那样使用类成员函数指针时就会报错:reference ...
- 类成员函数指针的语法
/*类成员函数指针的语法*/ /*****************************类.h文件************************************/ #if !defined ...
- C++函数指针和类成员函数指针
一.函数指针--基本形式 char Fun(int n) { return char(n); } //char(*pFun)(int);void main() {char(*pFun)(int);pF ...
- C++ 类成员函数指针的使用方法
C++ 类成员函数指针的使用方法 #include <iostream>void func(){ std::cout << "void func()" &l ...
最新文章
- 39条常见的Linux系统简单面试题
- 中国联通与阿里宣布相互开放云计算资源
- getCacheDir用法
- 佛媛之后又产“新妖”,抖音、快手出马,依旧掐不灭鬼怪们的妖火
- 博途中用的是c吗_配置太低玩不了赛博朋克?学会用这个电脑、手机都能轻松玩2077...
- oracle leg函数,032-函数的嵌套与LEGB原则
- 经典排序算法(3)——直接插入排序算法详解
- Linux目录结构详解
- extjs表格编辑、EditorGridPanel
- java代码注释规范
- MacBook设置快捷键打开终端Terminal
- 解决Win7系统无法睡眠问题
- 数字滤波器设计(高通低通)
- CRM客户资源管理系统项目——系统管理功能的实现
- 好看的网站正在升级维护中html单页源码
- 抵制日货(经典FLASH(转))
- 002_旭日X3派初探:TogetherROS安装
- java 地铁换乘算法,地铁换乘-一道题目,求思路,不求代码,该怎么处理
- 综合练习笔记1(用户管理系统)
- 谷歌浏览器意外关闭,如何快速恢复关闭的网页 | 小笔记
热门文章
- 缺陷管理规范--bug管理流程
- 一文读懂babel编译流程,再也不怕面试官的刁难了
- 数据结构与算法(updating....)
- 让一个元素水平垂直居中的方法
- ★LeetCode(942)——增减字符串匹配(JavaScript)
- 计算机网络---网络层ARP协议
- synchronized 异常_面试官,别挂电话,Synchronized,我还能说上半小时
- asp向不同的用户发送信息_.Net Core 和 .Net Framework的不同
- 电脑内存16g和32g,有什么区别?
- 为什么现在很小的孩子都会玩游戏,他们真的看得懂吗?