CPtrList不能使用:错误C2248:'CObject :: operator =':无法访问类'CObject'中声明的私有成员

时间:2014-06-17 10:17:54

标签: c++ mfc

我有一个MFC项目。所以在这个项目中我创建了一个独立的C ++类(一个源文件一个头文件),而不是MFC类。在这个C ++类头文件中,我声明了一个CPtrList(甚至没有在源文件中使用它),但是当涉及到编译时,会出现错误:C2248:' CObject :: operator =' :无法访问类' CObject'中声明的私有成员。

我所拥有的只是一份宣言。我最初认为这是因为我应该#include" afxcoll.h"在头文件的开头,但它没有尝试后。

不知道出了什么问题。有什么帮助吗?

下面的

是头文件。不会编译。

#pragma once
#include <iostream>
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include "stdafx.h"

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

int horizontalPartition;
int verticalPartition;
int height;
int width;
int differenceThreshold;

bool intrusionIndicator;
bool setMatDimension;
bool setPartition;

int dequePresetSize;
//std::deque<cv::Mat> matDeque;
//CPtrList pMatList;

//Testing purposes:
int currentAvg;
int historyAvg;

void DrawGrid(cv::Mat& img, int verticalPartitionNo, int horizontalPartitionNo);
void PutDebugText(cv::Mat& img);

void MonitorDatabaseUpdate(cv::Mat img);
int SingleCellInHistoryDatabaseAvgComputing(int top, int left, int bottom, int right);
int SingleCellAvgComputing(int top, int left, int bottom, int right);
bool CMonitor::Detector();

void SetPartitionInfo(int horizontalPartition, int verticalPartition);

};

1 个答案:

答案 0 :(得分:1)

那么,你有一个使用CPtrList数据成员的自定义类吗?

然后,从错误消息中,您可能正在尝试复制您的类,并且编译器无法执行此操作,因为CPtrList(与其他几个旧的MFC容器一样)是不可复制的。

我真的建议使用 STL容器而不是MFC容器(不能复制,有些甚至使用某种形式的&#34;恐怖&#34; memcpy()进行复制!)

在您的情况下,您可能需要考虑std::vectorstd::list