依旧无法无法访问 private 成员(在“CObject”类中声明)


写了几个文件 都对操作符 = 重载 构造拷贝,还是出错

 //data.h
 #ifndef  _DATA_H_
#define  _DATA_H_



    class CData
    {

    public: 
    CData()
    {
        a=_T("");
        b=_T("");
        c=_T("");
        d=_T("");
        e=_T("");
        f=_T("");
        g=_T("");
    }
    CData(CString Da,CString Db,CString Dc,CString Dd,CString De,CString Df,CString Dg)
    {
        a=Da;
        b=Db;
        c=Dc;
        d=Dd;
        e=De;
        f=Df;       
        g=Dg;
    }

    CData (const CData& _data)
    {

        this->a=_data.a;
        this->b=_data.b;
        this->c=_data.c;
        this->d=_data.d;
        this->e=_data.e;
        this->f=_data.f;
        this->g=_data.g;
    }
    CData& CData::operator=(const CData _data)
    {

        this->a= _data.a;
        this->b= _data.b;
        this->c= _data.c;
        this->d= _data.d;
        this->e= _data.e;
        this->f= _data.f;
        this->g= _data.g;

        return *this;
    }


    CString a;
    CString b;
    CString c; 
    CString d;
    CString e;
    CString f;
    CString g;
    };
    #endif




//CCDemoRecord.h




```#pragma once    
#include "data.h"    
typedef  CArray<CData,CData&>  
CDemoRecord;class CCDemoRecord
{
public:


    CCDemoRecord(void);
    ~CCDemoRecord(void);
    CCDemoRecord(const CCDemoRecord& _data)
    {
        this->record.a=_data.record.a;
        this->record.b=_data.record.b;
        this->record.c=_data.record.c;
        this->record.d=_data.record.d;
        this->record.e=_data.record.e;
        this->record.f=_data.record.f;
        this->record.g=_data.record.g;
    }
    CCDemoRecord& CCDemoRecord::operator=(const CCDemoRecord _data)
    {
        this->record.a=_data.record.a;
        this->record.b=_data.record.b;
        this->record.c=_data.record.c;
        this->record.d=_data.record.d;
        this->record.e=_data.record.e;
        this->record.f=_data.record.f;
        this->record.g=_data.record.g;
        return *this;
    }
    CData record;
    };

 #pragma once
#include<afxtempl.h>
#include "data.h"
typedef  CArray<CData,CData&>  CDemoRecord;
extern CDemoRecord  g_sets;     //全局变量声明
extern CDemoRecord  g_clust;   //簇
extern CDemoRecord  g_center;   //中心点
extern CDemoRecord  g_similar; //重复数据

class CDataPro
{
public:
    CDataPro(void);
    ~CDataPro(void);
    CDemoRecord InitCenter(CArray<CData,CData&> g_sets);  //初始中心点


    //CArray<data ,data&> ArrayData;  //data模板数组

};


 #include "stdafx.h"
#include "DataPro.h"
#include "CDemoRecord.h"
typedef  CArray<CData,CData&>  CDemoRecord;

CDataPro::CDataPro(void)
{
}


CDataPro::~CDataPro(void)
{
}

CDemoRecord InitCenter(CArray<CData,CData&> g_sets)  //初始中心点
{
    return g_center;
}

现在要写这个初始化中心点的函数, 报错
1>c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxtempl.h(262): error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
1> c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(534) : 参见“CObject::CObject”的声明
1> c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(509) : 参见“CObject”的声明
1> 此诊断出现在编译器生成的函数“CArray::CArray(const CArray &)”中
1> with
1> [
1> TYPE=CData,
1> ARG_TYPE=CData &
1> ]
1>
1>生成失败。
1>
1>已用时间 00:00:00.14
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========