编译怎么会出现这样问题?

Q54739616 2009-08-09 12:04:22
error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
\afx.h(551) : 参见“CObject::CObject”的声明

错误定位在这个 afx.h 文件里面,不在我的程序里面。怎么会这样?谁遇见过,怎么才能消除这个错误?
...全文
146 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gg606 2009-08-09
  • 打赏
  • 举报
回复
是不是类对象赋值或者拷贝构造造成的?
因为CObject类的赋值操作符和拷贝构造函数都是声明为私有的,如果其派生类没有重载这二者,可能出现如LZ所说的情况吧。
雪影 2009-08-09
  • 打赏
  • 举报
回复
你代码里面时有时有什么类继承了CObject
像这样继承: CXX:private CObject
也可能是你继承了MFC中的类时,是private继承
副组长 2009-08-09
  • 打赏
  • 举报
回复
通常我们的项目是不会直接从CObject派生的,但是我们应用的大部分MFC类总根都来自CObject。这个错不好找,好像以前遇到过错误定位到MFC基类的情况,好象是对象当参数传递还是什么来的。
danxuezx 2009-08-09
  • 打赏
  • 举报
回复
难道那个变量本来就是私有的?
jiujiu45 2009-08-09
  • 打赏
  • 举报
回复
顶一个
雪影 2009-08-09
  • 打赏
  • 举报
回复
你搜索private 关键字,类继承时使用的。
将其改为public继承
Q54739616 2009-08-09
  • 打赏
  • 举报
回复
果然都是高手,问题就出在用一个类的对象直接当参数传递来的。这不就是拷贝构造吗?

这是原来项目转移到VS2008来的代码,以前是VS2003,怎么就没出错呢?
Q54739616 2009-08-09
  • 打赏
  • 举报
回复
从来没有从CObject派生什么,甚至都找不到这个词。
一点一点地去掉,看什么地方编译不通过。
flyoxs 2009-08-09
  • 打赏
  • 举报
回复
tttyd 说得不错,你在项目中搜索一下“private CObject”,然后把 private 改为 public 继续

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧