不会编程能建网站,国外做饮用来源的网站,网站程序制作教程,网站建设服务后所有权归谁C的静态成员函数指针 先简单的说说非静态的成员函数。
非静态成员函数指针的类型#xff1a; 类的非静态成员是和类的对象相关的。也就是说#xff0c;要通过类的对象来访问变量。
成员函数的类型定义为#xff1a; typedef void (A::*pfunc)(); A是一个类,有一个成员函数…C的静态成员函数指针 先简单的说说非静态的成员函数。
非静态成员函数指针的类型 类的非静态成员是和类的对象相关的。也就是说要通过类的对象来访问变量。
成员函数的类型定义为 typedef void (A::*pfunc)(); A是一个类,有一个成员函数void test( 使用 pfunc p A::test; 示例
[cpp] view plain copy
#include iostream using namespace std; class A { public : void test1() { cout test endl; }; public : }; typedef void (A::*PFunc)(); int main() { A a; PFunc f (A::test1); (a.*f)(); system(PAUSE); return 0; } 需要注意的是因为成员函数地址的解引用必须要附驻与某个对象的地址所以我们必须创建某个对象来调用这个函数。 静态成员函数可以通过类作用域符来访问。
静态成员函数的类型静态成员函数的地址可用普通函数指针储存而普通成员函数地址需要用 类成员函数指针来储存。
typedef void (*pfunc) ();
这个和普通函数的指针是一样的。
使用的时候也可以像普通函数一样。 示例
[cpp] view plain copy
#include iostream using namespace std; class A { public : static void test1() { printf(test\n); }; public : }; typedef void (*PFunc)(); int main() { PFunc f (A::test1); (*f)(); system(PAUSE); return 0; }
另外静态成员的初始化不受访问控制的限制。
根据Cprimer所说要想确保对象只定义一次最好的办法就是把静态数据成员的定义和其他非内联函数的定义放在同一个文件中。