http://blog.csdn.net/sky453589103/article/details/47276789

先简单的说说非静态的成员函数。

非静态成员函数指针的类型:

类的非静态成员是和类的对象相关的。也就是说,要通过类的对象来访问变量。
成员函数的类型定义为:
typedef void (A::*pfunc)();
A是一个类,有一个成员函数void test();
使用:
pfunc p = A::test;
示例:
[cpp] view plain copy
  1. #include <iostream>
  2. using namespace std;
  3. class A {
  4. public :
  5. void test1() { cout << "test" << endl; };
  6. public :
  7. };
  8. typedef void (A::*PFunc)();
  9. int main() {
  10. A a;
  11. PFunc f = &(A::test1);
  12. (a.*f)();
  13. system("PAUSE");
  14. return 0;
  15. }
需要注意的是因为成员函数地址的解引用必须要附驻与某个对象的地址,所以我们必须创建某个对象,来调用这个函数。
静态成员函数,可以通过类作用域符来访问。
静态成员函数的类型:静态成员函数的地址可用普通函数指针储存,而普通成员函数地址需要用 类成员函数指针来储存。
typedef void (*pfunc) ();
这个和普通函数的指针是一样的。
使用的时候也可以像普通函数一样。
示例:
[cpp] view plain copy
  1. #include <iostream>
  2. using namespace std;
  3. class A {
  4. public :
  5. static void test1() { printf("test\n"); };
  6. public :
  7. };
  8. typedef void (*PFunc)();
  9. int main() {
  10. PFunc f = &(A::test1);
  11. (*f)();
  12. system("PAUSE");
  13. return 0;
  14. }

另外: 静态成员的初始化不受访问控制的限制。

根据C++primer所说,要想确保对象只定义一次,最好的办法就是把静态数据成员的定义和其他非内联函数的定义放在同一个文件中。

C++的静态成员函数指针相关推荐

  1. C++静态成员函数指针

    C++的静态成员函数指针 先简单的说说非静态的成员函数. 非静态成员函数指针的类型: 类的非静态成员是和类的对象相关的.也就是说,要通过类的对象来访问变量. 成员函数的类型定义为: typedef v ...

  2. 类的成员函数指针和静态成员函数指针 调用成员函数***

    C++提供static这个关键词对静态成员进行声明,静态成员函数和类的实例化无关,对于同一类来说,静态成员函数是所有类的对象共享的.而普通成员函数需要实例化才能调用,对于每一个实例来说,普通成员函数是 ...

  3. c++静态成员函数好处

    静态成员函数主要为了调用方便,不需要生成对象就能调用. 比如: class X { public:void MethodA();static void MethodB(); } 此时MethodB可以 ...

  4. C++中函数指针的使用

    A function pointer is a variable that stores the address of a function that can later be called thro ...

  5. 函数指针--全局函数指针与类的函数指针(二)

    本次对之前的说明做个补充,大体内容还是一样的. 这里对类里面的成员函数指针变量的使用继续进行了解,最主要的是希望能达到通过非静态成员指针变量来引用各自的非静态成员函数. 这样每个实例可以保存当前对象对 ...

  6. c c++ 函数内数组初值_C/C++函数指针与指针函数

    关于指针,前面文章C语言指针详解有过介绍,这里主要讨论函数指针和指针函数. 1 什么是指针? 定义:指针是程序数据在内存中的地址,而指针变量是用来保存这些地址的变量; 上面一个 4GB 的内存可以存放 ...

  7. 类成员函数指针的语法

    /*类成员函数指针的语法*/ /*****************************类.h文件************************************/ #if !defined ...

  8. 成员函数指针与高性能的C++委托

    成员函数指针与高性能的C++委托 http://www.cnblogs.com/jans2002/archive/2006/10/13/528160.html Member Function Poin ...

  9. 成员函数指针与高性能的C++委托(上篇)

    成员函数指针与高性能的C++委托(上篇) 撰文:Don Clugston 引子 标准C++中没有真正的面向对象的函数指针.这一点对C++来说是不幸的,因为面向对象的指针(也叫做"闭包(clo ...

最新文章

  1. 必须安利的KubernetesDevOps工具
  2. 算法练习----java字符全排列
  3. python实现文件下载-python实现文件下载的方法总结
  4. 10个利用Eclipse调试Java的常见技巧
  5. .NET分层登陆——机房收费系统再总结
  6. unity中单位是米还是厘米_2019-08-22Unity中的单位长度与像素之间的关系
  7. delphi开发LINUX程序,DELPHI开发LINUX包
  8. ARM32/ARM64函数调用规则
  9. Linux下C++开发系列(一)序——我是如何开始linux下C++开发的
  10. SGI和Intel计划在2018年以前,将超级计算机速度提高500倍
  11. WebSocket 实现链接 群聊(low low low 版本)
  12. Hamcrest匹配器框架
  13. b站python弹幕签到_一个python脚本就可以B站查找弹幕发送者!
  14. Python字符串str和json格式的转换
  15. 盈利与公益矛盾迸发下,众筹平台如何才能自救?
  16. php的tips(mysql语句union等问题)
  17. 关于cocoapods遇到xxxx file not found和No such module 'XXX'的问题
  18. Tiled结合Unity实现瓦片地图
  19. 读取excel标题、内容
  20. 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程

热门文章

  1. 关于重装系统后或打补丁后不能上网的问题的解决
  2. svn安装教程 mysql_CentOS6.4 下安装SVN的详细教程(超详细)
  3. cass方格网数据excel_讨论|CASS怎么计算回字型土方? 124
  4. arcgis已试图对空几何执行该操作_ArcGIS中地理配准与空间校正的不同
  5. 正方体最快最简单画_素描新手入门第一幅画可不只是“正方体”
  6. eclipse java工程目录_转载:Eclipse下的java工程目录
  7. gitee项目404问题_七款开源项目,让你数据库管理不再成为一个问题
  8. openMVG跑自定义数据出错
  9. C/C++编译、测试须知、须会,CMake、Boost等
  10. .php y=mp4,PHP输出MP4视频流函数