尝试将函数参数中的CTypedPointerList实例从一个类发送到另一个类时发生此错误。
如何解决这个问题?
这是我的密码
对象列表.h

#pragma once
#include "LogData.h"
typedef  CTypedPtrArray<CPtrList , CLog *> CLogData;
class CObjectList
{
    public:

CLogData m_logData;
    public:
CObjectList();
CLogData GetLog();
};

对象列表.cpp
#include "stdafx.h"
#include "LogData.h"

CObjectList::CObjectList()
{
}

CLogData CObjectList::GetLog()
{
return m_logData;
}

当做,
岩溶

最佳答案

我需要查看您的代码才能确定,但看起来您正试图按值传递CTypedPointerList。这意味着需要创建实例的副本,因此需要隐式调用copy构造函数。CTypedPointerList的作者已将复制构造函数标记为私有,以指示无法生成此类的副本。
尝试通过引用传递(可能是const引用?)。如果确实需要副本,则可能需要手动执行此操作。
编辑
啊。。。您使用实例作为返回值。GetLog()方法返回实例的副本,由于无法复制实例,因此它不会编译。我希望您真正想做的是返回对实例的常量引用。这意味着客户端将获得对日志的只读引用,不进行复制。为此,在h和cpp文件中将GetLog()的返回类型更改为const CLogData &

10-04 14:47