导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)

zhu6789888 2010-07-02 11:59:20
class KCTrack : public CObject
{
private:
//
CArray<CPoint, CPoint> m_ClientPtArray;
public:
//
CArray<CPoint, CPoint> GetClientPtArray();
}

CArray<CPoint, CPoint> KCTrack::GetClientPtArray()
{
return m_ClientPtArray;
}


出现这样的编译错误,为什么?
错误 1 error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明) c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtempl.h 267
...全文
5391 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhu6789888 2010-07-05
大家看看呢
回复
muzizongheng 2010-07-02
CArray<CPoint, *CPoint>

原理都一样 , 就是传内存地址 。
回复
zhu6789888 2010-07-02
还有其他解决方法吗 ?
还有类似很多类也不能把,能举些例子吗?
谢谢
回复
muzizongheng 2010-07-02
CArray<CPoint, CPoint> 改为CArray<CPoint, &CPoint>
回复
CArray对象不支持拷贝
回复
zhu6789888 2010-07-02
如果要重载,要怎么重载呢,重载CArray的吗?
那不是要继承它?CTrack 中重载的话,要怎么对CArray成员操作呢,操作的话不是又有这样的问题吗 ?
回复
向立天 2010-07-02
还是返回指针吧
用着也方便
回复
zhu6789888 2010-07-02
[Quote=引用 7 楼 cj1205 的回复:]
重载拷贝构造函数就是直接写一个拷贝构造函数,和构造函数一样,系统会根据类型来决定调用哪一个拷贝构造
[/Quote]

怎么重载呢,重载CArray的吗?
那不是要继承它?CTrack 中重载的话,要怎么对CArray成员操作呢,操作的话不是又有这样的问题吗 ?
回复
zxdlms 2010-07-02
这个没办法啊,因为CObject定义的时候是:
private:
CObject(const CObject& objectSrc); // no implementation
void operator=(const CObject& objectSrc); // no implementation
把拷贝构造函数和赋值运算符定位为private,就是不允许拷贝和赋值。

就是用指针或是引用也没什么不好的啊。
回复
cj1205 2010-07-02
重载拷贝构造函数就是直接写一个拷贝构造函数,和构造函数一样,系统会根据类型来决定调用哪一个拷贝构造
回复
zhu6789888 2010-07-02
如果我要重载拷贝构造函数 可以吗 ?
怎么做呢?
回复
雪影 2010-07-02
CArray<CPoint, CPoint>& KCTrack::GetClientPtArray()
{
return &m_ClientPtArray;
}
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

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