C++功能无法访问
C++ Function is Inaccessible
我想知道为什么无法访问此功能。
该函数:
class SERVER_DECL EventableObject
{
protected:
void RemoveEvent(TimedEvent * ev);
};
这是我所拥有的:
Event * ReadyUp;
void Start()
{
static uint8 Tick = 1;
if(Tick == 1)
{
NormalMessage("Starting Event..");
}
EventableObject.RemoveEvent(this->ReadyUp); // Inaccessible
}
EventableObject.RemoveEvent(this->BattlefieldReadyUp(;//无法访问
是我收到错误的地方。
它无法访问,因为它是protected
而不是public
。
protected
意味着您只能从同一类或派生类中访问它。由于您没有指出代码所在的位置,因此我只是假设它都不是。
C++中的protected
函数只能由类本身和派生类访问,而不能由类外部访问,因此您会收到该函数无法访问的错误消息。
首先,它被标记为 protected
,因此它对非派生类不可见。
不是静态的,在我看来,你好像在称呼它。 除非你周围有一个名为 EventableObject
的对象实例,否则你需要一个实例引用来调用该函数,即
EventableObject ev;
ev.RemoveEvent( this->ReadyUp );
当然,除非您已经在其他地方添加了事件,否则该代码毫无意义,但希望您能理解这个想法。
EventableObject
是一种类型。
您需要该类型的对象才能调用成员函数。
EventableObject::RemoveEvent
未声明static
。这意味着您需要一个类型 EventableObject
的对象来调用EventableObject::RemoveEvent
。
EventableObject::RemoveEvent
被声明为protected
.这意味着它只能从类EventableObject
本身和派生类中调用。如果您必须从其他位置呼叫它,请使其public
。
相关文章:
- 如何从其他功能C++访问参数?
- 如何使用 MPI 的远程内存访问 (RMA) 功能并行化数据聚合?
- 访问我以前可以访问的功能时出现分段错误
- 好友功能 - 成员无法访问
- 如何启用友元类的友元功能直接在C++中访问其私有成员
- 无法从好友功能访问类的私有成员?"ostream"不是"std"的成员?
- 无法访问公共功能? 没有指定成员?
- 好友功能仍无法访问私人会员
- 我无法获得好友会员功能以实际访问私人会员
- GPU设备函数如何访问主机功能中定义的对象
- 派生类中的成员字段别名(无访问器功能)
- 从C文件访问C 类成员功能
- 访问嵌套结构的数据成员并将结构传递到功能C
- 使用宏访问功能
- QT:类的访问功能,该功能使用构造函数外的GUI小部件
- 在其他源文件中没有通用的头文件访问功能
- 这是使用访问功能的好习惯
- 从C 访问功能环境中的LUA变量
- 如何在右键单击链接并从上下文菜单访问功能后获取链接的 DOM
- QObject信号和插槽未访问功能