关于C++指向类成员函数的指针

疑惑:不知用处

解释:

//全局函数
void fun1() {}
void fun2() {}

class D
{
	//类成员函数
public:
	void fun1() {}
	void fun2() {}
};

int main()
{
	void(*point1)() = fun1;//指向全局函数,ok
	//void(*point3)() = &D::fun1;//普通函数指针,编译错误,因为类型不一样
	void (D::*point2)() = &D::fun1;//指向类成员函数指针,ok

	cin.get();
	//getchar();
	//system("pause");
	return 0;
}

成员函数指针和普通函数指针之间的不匹配是由于这两种指针在表示上的区别。函数指针存储函数的地址,可以被用来直接调用那个函数。成员函数指针首先必须被绑定在一个对象或者一个指针上,才能得到被调用对象的this 指针,然后才调用指针所指的成员函数。

参考:C++指向类成员的指针的使用(详细介绍)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值