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

解决方案 »

  1.   

    CArray<CPoint, CPoint> 改为CArray<CPoint, &CPoint> 
      

  2.   

    CArray<CPoint, *CPoint>原理都一样 , 就是传内存地址 。 
      

  3.   

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

  4.   

    这个没办法啊,因为CObject定义的时候是:
    private:
    CObject(const CObject& objectSrc);              // no implementation
    void operator=(const CObject& objectSrc);       // no implementation
    把拷贝构造函数和赋值运算符定位为private,就是不允许拷贝和赋值。就是用指针或是引用也没什么不好的啊。
      

  5.   


    怎么重载呢,重载CArray的吗?
    那不是要继承它?CTrack 中重载的话,要怎么对CArray成员操作呢,操作的话不是又有这样的问题吗 ?
      

  6.   

    如果要重载,要怎么重载呢,重载CArray的吗?
    那不是要继承它?CTrack 中重载的话,要怎么对CArray成员操作呢,操作的话不是又有这样的问题吗 ?