VC++ error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
在使用诸如:CArray或是 CList等类时,经常会出现此错误
此错误的原因是由于自定义的类的数组项时
有一个操作如 Add() 在这个操作中,实际上需要一个 = 操作,但是这个 =操作在 自定义类中没有实现,于是,程序自动去它的parent 类 也就是 CObject 类去找,但是却找到个这个类的 = 是一个 private 于是就报了这个错误.
知道了原因解决方法自然就有了,那就是在自定义类中 重载操作符 = 重载后 这个错误就没有了.
class COptRect : public CObject {public:COptRect();virtual ~COptRect();// 操作的起始范围 CRect m_OptStartRect;// 操作的结束范围 CRect m_OptEndRect;// 操作的目标界面int m_OptDesSurface;COptRect& operator = (COptRect & src);};
实现代码
COptRect::COptRect(): m_OptDesSurface(0) { }COptRect::~COptRect() { }COptRect& COptRect::operator = (COptRect & src) {this->m_OptDesSurface = src.m_OptDesSurface;this->m_OptEndRect = src.m_OptEndRect;this->m_OptStartRect = src.m_OptStartRect;return *this; }
那么在实现了这个自定义类后,开始使用它
先定义变量数组
CArray<COptRect, COptRect&> optArray;
在这个数组后,我们使用一个添加新元素的命令
// 向界面添加一个操作区域 void CSurface::AddOptRect(CRect Start, CRect End, int DesID) {COptRect ort;ort.m_OptStartRect = Start;ort.m_OptEndRect = End;ort.m_OptDesSurface = DesID;optArray.Add(ort); }
如此操作后,不再报上面的错误!问题解决
转载于:https://www.cnblogs.com/lujin49/p/4958545.html
VC++ error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)相关推荐
- qt程序报错error C2248: “ThreadTest::ThreadTest”: 无法访问 private 成员(在“ThreadTest”类中声明)
问题: 在qt程序中新增一个类,未继承任何类,后来增加继承类的时候,添加继承类和Q_OBJECT宏后编译报错: error C2248: "ThreadTest::ThreadTest&qu ...
- 错误 C2248 “Bus::operator ()”: 无法访问 private 成员(在“Bus”类中声明)
vocter容器在使用algorithm的find以及find_if中出现的无法访问private成员变量问题 vector<Bus>bus class Bus { private:int ...
- 05-----关于C++使用VS时出现 error C2248: “xxx“ 无法访问private成员(在“MySpdlog“类中声明)
一 问题描述 项目中遇到一下问题,需要写个测试程序,但是在搭建的过程中,出现错误的,心想,代码一样的,怎么就报错了呢.于是开始查找问题. 错误如下: 因为我的测试程序文件不算多,就5个,代码也不多,于 ...
- “CObject::operator =”: 无法访问 private 成员(在“CObject”类中声明)
c++工程编译报错: "CObject::operator =": 无法访问 private 成员(在"CObject"类中声明) 错误无法直接定位源码位置,网 ...
- c++编译报错 error c2248: “xxx:xxx“:无法访问private成员(在“xxx“类中声明)
在定义类时,将构造函数放在了private或protected里面,编译时都会出现类似错误 t.cpp class Ca{private:Ca(){} }; int main(){Ca a;retur ...
- error C2248: “CObject::CObject”: 无法访问private 成员(在“CObject”类中声明)
MFC编程时遇到此问题,原因和解决方法如下: 问题代码: BayesTest bTest(m_ModelPath); BayesCategoryTest(bTest, m_ ...
- 关于“C2248 QString::QString 无法访问private成员的问题”
直接上图: 第252行,想通过const char* 在QJsonArray中定位相应的QJsonObject对象出来,就报了这个错. 网上找找,遇到这个问题的人很少,没什么回答.但有位哥们儿言简意赅 ...
- error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明) [问题点数
请问大家是不是继承了CObject的类,就不能做为函数的参数? 我写了这样一个方法: int FindItem(CStringArray pstrArray,CString strSource) { ...
- error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
原因 首先说明原因,这是由于对CObject对象进行直接拷贝导致的,在MFC中,大部分对象都是继承自CObject.然而,CObject对象没有实现拷贝构造函数和拷贝赋值运算符,如下图所示. ...
最新文章
- 【蓝桥杯Java_C组·从零开始卷】第三节(附)、for循环练习题(数据题与图形题)
- oppo r17听筒测试软件,【OPPOR17评测】ColorOS变智能 OPPO R17堪称生活小秘书(全文)_OPPO R17(6GB RAM/全网通)_手机评测-中关村在线...
- python socket send_python socket 连续send,出现粘包问题
- python 雪花id_基于python实现雪花算法过程详解
- hadoop连接远程mysql_Hadoop之Hive本地与远程MySQL数据库管理模式安装手册
- java main传入参数_Main方法中传入参数
- 计算机二级晓云是企业人力,全国计算机二级MsOffice真题试卷wore
- 前后端整合---请求
- 5. PDO 数据库封装
- 网易云课堂Java模拟面试笔记(31-40)
- MCU芯片缺货涨价 国内厂商机遇和挑战并存
- 数据库系统的体系结构
- 高新技术企业补贴政策能通过吗?高新企业补贴什么时候发放
- SQL-SQL函数(二)Scalar 函数
- 前端日期时间处理建议使用Momen
- GitHub如何配置SSH Key
- vc按钮按下后变灰(不能再按)
- 机器学习预测的概率如何表示?
- 台式电脑系统还原具体操作方法
- 八十年代的程序员们和略显悲情的故事
热门文章
- (十二)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - zookeeper注册中心安装
- 那些年Android黑科技③:干大事不择手段
- 【递推DP】POJ1163The Triangle
- Hadoop学习笔记(8) ——实战 做个倒排索引
- Linux运维工程师必备技能
- Dynamips/Dynagen模拟CISCO路由环境
- 第二话 最最最简单的计算机
- ossim-agent代理和要监控的服务器的配置
- Python高阶函数(map,reduce,filter)
- datagrid行内编辑时为datetimebox