能否帮我解释一下typedef void (CObject::* ptr_BOOL)(BOOL mData);

来源:百度知道 编辑:UC知道 时间:2024/05/12 12:43:37
这个我不太清楚,(CObject::* ptr_BOOL)的具体是什么意思,
(CObject::* ptr_BOOL)(BOOL mData)又是什么意思?
整体什么意思?
后面使用时
CObject * obj;
ptr_BOOL ptr;
if (obj!=NULL)
(obj->*ptr)(pDoc->bOpenImage); 这句话是什么意思啊
请帮忙解释一下啊

成员函数指针

ptr_BOOL是一个函数指针,指向的函数是CObject类的一个成员函数,参数是一个BOOL值

后面使用的地方有错误,定义的指针没有被赋值,比如CObject中有一个非静态函数void func(BOOL bData)

那么可以使用:ptr_BOOL ptr = obj->func;

然后可以调用:(obj->*ptr)(TRUE)

如果不先赋值,那么结果不可预期

注意:->*和.*都是C++的一个操作符是一个整体

更多资料可以百度一下“数据成员指针”和“成员函数指针”

ptr_BOOL:一个指向CObject成员函数的指针,这个成员函数为void型,参数为BOOL型。