#includeusing namespace std; class A { public: A(int z = 0, double x = 0.0): z(z), x(x) {} int fun1(float) { return 0; } static double fun2(int, string) { return 0; } static int y; int z; private: double x; }; float fun3(double) { return 0; } int A::y = 0; int main() { A a(1, 4.2); //普通函数指针,两种赋值方式 float (*p3)(double) = fun3; float (*p4)(double) = 0; p4 = fun3; //类的非静态数据成员指针,两种赋值方式 int *p5 = &a.z; int *p6 = 0; p6 = &a.z; //类的静态数据成员指针,两种赋值方式 int* p1 = &A::y; int* p2 = 0; p2 = &A::y; //类的非静态成员函数指针,两种赋值方式 int (A:: * p7)(float) = &A::fun1; int (A:: * p8)(float) = 0; p8 = &A::fun1; //类的静态成员函数指针,两种赋值方式 double (*p9)(int, string) = A::fun2; double (*p10)(int, string) = 0; p10 = A::fun2; }



