laomu0515 2017-11-22 08:19 采纳率: 100%
浏览 1778

依旧无法无法访问 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;
    };

  • 写回答

1条回答 默认 最新

  • laomu0515 2017-11-22 08:22
    关注
     #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 个 ==========

    评论

报告相同问题?

悬赏问题

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