派生类成员函数调用时 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”类中声明的私有成员

尝试从基类访问受保护的构造函数时获取错误C2248

生成一个派生类对象时,调用基类和派生类构造函数按啥次序

C++创建派生类对象时,调用构造函数顺序

C++中的派生类,可以不定义对象直接调用基类的成员和调用自己的成员函数嘛???

为啥指向基类的派生类指针可以调用派生类成员函数? [复制]