CArray 自定义模板出错,C2248:

自定义可以CData ,还定义了全局变量,现在要写 InitCenter这个函数 报错,

//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;
    }

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

//DataPro。cpp

 #include "stdafx.h"
#include "DataPro.h"


CDataPro::CDataPro(void)
{
}


CDataPro::~CDataPro(void)
{
}


CArray<CData,CData&> CDataPro::InitCenter(CArray<CData,CData&> g_sets) 
{
    return g_center;
}

//DataPro.h

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

class CDataPro
{
public:
    CDataPro(void);
    ~CDataPro(void);

    CArray<CData,CData&> InitCenter(CArray<CData,CData&> g_sets);
    //CArray<data ,data&> ArrayData;  //data模板数组

};


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

CArray<CData,CData&> CDataPro::InitCenter(CArray<CData,CData&> g_sets) 
这个函数返回 CArray<CData,CData&> 这个对象 ,g_center 是CArray<CData,CData&>,这样的返回会有如下的调用:

会调用 CArray的拷贝构造函数或者 = operator, 如果在 CObject 中是私有的那么就可能产生这个错误。
这个只是猜测,毕竟我也没有执行或者查看代码.