工作需要自定义一个控件,结果调用成员函数总是报错!
如下图:
理论上继承关系和函数权限public都没有问题,可是只要一使用自定义的成员函数就会报error C2248: 无法访问 protected 成员 ,查了很久资料,总算试出了解决方案,就是加强制声明public:即在成员函数声明时强制在前面加public:,对于上例就是在自定义SetTextEx前面加。如图:
原因分析:
语法上没有问题就可能是编译器编译时默认给继承类的成员函数都默认加了protected 的属性,虽然是放在public区域,可是编译时还是默认被编译成了protected 的函数,所以在函数前加入public:强制绑定成public类型的就能正常编译使用了。希望能帮后来者节省点排雷时间。
原文地址:https://blog.51cto.com/13243359/2468500
时间: 2024-10-19 12:10:11