Code Bye

vs2013环境下*this怎么样强制执行非const引用

一个公用操作类A,包含函数:
void A::OP(ClassB& );
void A::OP(const ClassB& );

另一个类B,其成员函数中调用A::OP(*this),
实际运行中发现执行为

void A::OP(const ClassB& );

怎么样强制指定调用const或非const引用.

解决方案

5

不懂帮顶

20

重载的话,获取成员函数指针。再调用。
void(A::*p)(Class B&) = &A::OP;
A* pa = xxxx;
(pa->*p)( *this );

15

假如*this是const的那肯定会调用const ClassB&的啊
假如*this不是const那一般会调用ClassB&,除非是非特化的模板

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明vs2013环境下*this怎么样强制执行非const引用