派生类成员函数调用时 error C2248: 无法访问 protected 成员 的排雷之路
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了派生类成员函数调用时 error C2248: 无法访问 protected 成员 的排雷之路相关的知识,希望对你有一定的参考价值。
工作需要自定义一个控件,结果调用成员函数总是报错!
如下图:
理论上继承关系和函数权限public都没有问题,可是只要一使用自定义的成员函数就会报error C2248: 无法访问 protected 成员 ,查了很久资料,总算试出了解决方案,就是加强制声明public:即在成员函数声明时强制在前面加public:,对于上例就是在自定义SetTextEx前面加。如图:
原因分析:
语法上没有问题就可能是编译器编译时默认给继承类的成员函数都默认加了protected 的属性,虽然是放在public区域,可是编译时还是默认被编译成了protected 的函数,所以在函数前加入public:强制绑定成public类型的就能正常编译使用了。希望能帮后来者节省点排雷时间。
以上是关于派生类成员函数调用时 error C2248: 无法访问 protected 成员 的排雷之路的主要内容,如果未能解决你的问题,请参考以下文章
错误 C2248:“CObject::CObject”:当我在 MFC 中调用 hDC.SelectObject 函数时,无法访问在“CObject”类中声明的私有成员