源SDK编译错误

时间:2011-11-28 14:56:42

标签: c++

我正在制作一个反恐精英版本,在编译过程中我遇到了一些错误:

Panel.cpp(715): error C2248: 'CInput::CVerifiedUserCmd' : cannot access private class declared in class 'CInput'
1>          \SDK\\game\\client\\input.h(238) : see declaration of 'CInput::CVerifiedUserCmd'
1>          \SDK\\game\\client\\input.h(39) : see declaration of 'CInput'

第715行:

CInput::CVerifiedUserCmd* ver = NULL;

声明:

class CVerifiedUserCmd
{
public:
    CUserCmd    m_cmd;
    CRC32_t     m_crc;
};

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

您可能正在尝试使用private内部类:

class A
{
   class B
   {
   };
};

如果您希望在外面使用它,只需创建课程public

class A
{
public:
   class B
   {
   };
};

编辑:

如果该类是私有的并且它是第三方库的一部分,那么你可能做错了。为您的问题寻找不同的解决方案,出于某种原因将其设为私有。

答案 1 :(得分:3)

假设你的代码放在了类

CVerifiedUserCmd

到外部类的公共部分。否则你不能使用CVerifiedUserCmd,因为它是私有的内部类。

答案 2 :(得分:1)

您可能无法(除非您想编辑引擎本身) - 寻找更好的解决方案来解决您的问题。基本上,不要尝试手动实例化CInput::CVerifiedUserCmd