【发布时间】:2022-11-16 23:37:59
【问题描述】:
我创建了一类事件。
class DoorEvts
{
private:
std::function<int, int> EvtOpenFunc; // onOpen(int floor, int building) ;
std::function<char*> EvtClosedFunc; // onClosed(char* Name) ;
public:
void SetEvtOpen(std::function<int, int> myEvtHandlingFunc)
{
EvtOpenFunc = myEvtHandlingFunc;
};
void SetEvtClosed(std::function<char*> myEvtHandlingFunc)
{
EvtClosedFunc = myEvtHandlingFunc;
};
};
我想让事件数据对任何愿意使用它的人来说都是显而易见的。
不仅使用类型,还使用描述。类似于函数的声明方式。
我尝试将信息添加为评论,以便用户了解每种类型的含义。
如果退出,寻找更好的代码内解决方案。
【问题讨论】:
-
EvtOpen和EvtClosed可能更具描述性,也许EvtOpenFunction和EvtClosedFunction或者只是OpenFunction和ClosedFunction您也可以将SetEvtOpen()命名为SetEvtOpenFunction()或SetOpenFunction() -
不清楚,因为:“......我想让事件数据对任何愿意使用它的人来说都是显而易见的......”但是事件数据
EvtOpen和EvtClosed是private所以只有这个类/你可以使用它。 -
只有二计算机科学中的难题。 1) 缓存失效,2) 命名事物,3) off-by-1 错误。
-
据我所知,
Delegate不是标准的 C++ 东西。如果您使用标准构造并明确描述/包含非标准构造(包括它们的代码),它会使您的问题更容易回答
标签: c++