解决VC++编译报错error C2248的方案

 更新时间:2015年11月13日 10:57:38   投稿:hebedich  
这篇文章主要介绍了解决VC++编译报错error C2248的方案的相关资料,需要的朋友可以参考下

在使用诸如: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);
}

如此操作后,不再报上面的错误!问题解决

案例二:

在写一个MFC程序,编译的时候出了个error C2248: “CObject::operator =”: 无法访问 private 成员(在“CObject”类中声明),定位不到那部分的代码出了问题,

看网上有不少人也遇到了这个问题。

分析了下我写的程序与之前的不同,其中有个一个地方用到了Image Picture控件的CStatic类对象,一开始用的指针对象,后来改成对象就除了上面的问题,改回来就ok了.

后来查了一下,这种对控件操作的对象最好都声明成指针,不然就会报上面的错误。

相关文章

  • C++模拟2D牛顿力学效果的示例代码

    C++模拟2D牛顿力学效果的示例代码

    这篇文章主要为大家详细介绍了如何利用C++模拟2D牛顿力学效果,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-06-06
  • C语言寻找无向图两点间的最短路径

    C语言寻找无向图两点间的最短路径

    这篇文章主要为大家详细介绍了C语言寻找无向图两点间的最短路径,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • c语言常量定义规则知识点总结

    c语言常量定义规则知识点总结

    在本篇文章里小编给大家整理的是关于c语言常量定义规则知识点总结,需要的朋友们可以学习下。
    2020-03-03
  • C语言实现消消乐游戏的代码分享

    C语言实现消消乐游戏的代码分享

    本章我们将编写十字消除游戏,用户点击空白方块,沿其上下左右方向寻找第一个彩色方块,如果有两个或两个以上颜色一致,就将其消除,感兴趣的可以了解一下
    2023-02-02
  • win32 api实现简单的消息窗口示例

    win32 api实现简单的消息窗口示例

    这篇文章主要介绍了使用win32 api实现简单的消息窗口示例,需要的朋友可以参考下
    2014-03-03
  • C语言实现飞机小游戏

    C语言实现飞机小游戏

    这篇文章主要为大家详细介绍了C语言实现飞机小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • C++输入输出重定向方法示例

    C++输入输出重定向方法示例

    这篇文章主要给大家介绍了关于C++输入输出重定向的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • C语言数据结构与算法之排序总结(二)

    C语言数据结构与算法之排序总结(二)

    这篇文章住要介绍的是选择类排序中的简单、树形和堆排序,归并排序、分配类排序的基数排序,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2021-12-12
  • 深度理解c++中的this指针

    深度理解c++中的this指针

    这篇文章主要介绍了C++编程指向成员的指针以及this指针的基本使用指南,与C语言一样,存储的数值被解释成为内存里的一个地址,需要的朋友可以参考下。
    2016-07-07
  • Qt数据库应用之实现数据打印到纸张

    Qt数据库应用之实现数据打印到纸张

    关于Qt打印内容到纸张,网上的办法非常多,比如有些直接用painter绘制,逐步控制分页打印。本文介绍的方法则是将内容作为html设置到文档对象,再调用文档对象的print方法传入QPrinter对象打印,感兴趣的同学可以了解一下
    2022-01-01

最新评论