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 个 ==========

    评论

报告相同问题?

悬赏问题

  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法