如何克服这个问题?
这是我的代码
这是我的代码
ObjectList.h
#pragma once
#include "LogData.h"
typedef CTypedPtrArray<CPtrList , CLog *> CLogData;
class CObjectList
{
public:
CLogData m_logData;
public:
CObjectList();
CLogData GetLog();
};
ObjectList.cpp
#include "stdafx.h"
#include "LogData.h"
CObjectList::CObjectList()
{
}
CLogData CObjectList::GetLog()
{
return m_logData;
}
访问其他文件中的内容时显示错误:
CObjectList* threadinfo;
threadinfo = (CObjectList*)ptr;
threadinfo->GetLog().AddTail(log);
此致
KARTHIK
答案 0 :(得分:2)
很难说,因为你的帖子非常脱节。
错误消息听起来像是在您尝试违反常量时获得的错误消息。
e.g。
class C
{
public:
void a();
void b() const;
};
void func()
{
C c0;
c0.a(); // OK
c0.b(); // OK
const C c1;
c1.a(); // violates const-ness : compiler error
c0.b(); // this is OK as b() is a const function.
}
如果你有一个const对象,你只能调用const方法。
你会得到很多变化。 e.g。
class D
{
public:
void e();
};
class F
{
public:
void g() const
{
m_d.e(); // This line is an error
}
D m_d;
};
void func()
{
F f;
f.g();
}
在上面,F :: g()是一个const函数。它可以在const对象上调用。但即使您使用非const对象调用它,也可以保证不更改对象。 但是F :: g()在本地对象m_d上调用D :: e()。 D:e()不是const函数,因此编译器不知道它是否会修改m_d - 因此编译器会给出错误。
它可能变得复杂。
所以我猜你有一个const-ness的问题。它可能是一个简单的,也可能是一个复杂的。如果您可以发布一些显示相同问题的完整代码,那么它将更容易为您提供帮助。