laomu0515 2017-11-21 08:47 采纳率: 100%
浏览 984
已结题

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”类中声明)

  • 写回答

1条回答 默认 最新

  • 枫舞的季节 2018-06-19 01:54
    关注
    CArray<CData,CData&> CDataPro::InitCenter(CArray<CData,CData&> g_sets) 
    这个函数返回 CArray<CData,CData&> 这个对象 ,g_center 是CArray<CData,CData&>,这样的返回会有如下的调用:
    
    会调用 CArray的拷贝构造函数或者 = operator, 如果在 CObject 中是私有的那么就可能产生这个错误。
    这个只是猜测,毕竟我也没有执行或者查看代码.
    
    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记