类成员函数调用

#include <iostream>

using namespace std;

class A
{
public:
	void func1() { cout << "func1\n"; }
	void func2() { cout << "func2\n"; }
	static void func3() { cout << "static func3\n"; }
};

void print() {
	std::cout << "hello world" << std::endl;
}

int main(void) {
// 普通成员函数
	void (A:: * pf)();  // 定义A的成员函数指针
	pf = &A::func1;     // 指针赋值
	A a;
	(a.*pf)();          // 用类的实例来调用函数指针指向的成员函数
	pf = &A::func2;
	(a.*pf)();
	// 静态成员函数
	void (*spf)();      // 静态函数指针定义 ,和普通的函数(非类成员函数)一样
	spf = &A::func3;    // 静态函数指针赋值
	(*spf)();           // 调用
	// 类成员函数调用,隐藏this指针
	std::cout <<"普通成员函数: "<<typeid(&A::func1).name() <<"  "<<typeid(pf).name() << std::endl;
	std::cout <<"静态成员变量: "<<typeid(&A::func3).name() <<"  "<<typeid(spf).name() << std::endl;
	system("pause");
	return 0;

}
上一篇:matlab面向对象编程基础


下一篇:Python闭包