C++ ISO C&x2B+;:如何设计活动?
我知道用C++设计事件的两种方法: 1:使用回调: 2:使用C++ ISO C&x2B+;:如何设计活动?,c++,events,design-patterns,iso,C++,Events,Design Patterns,Iso,我知道用C++设计事件的两种方法: 1:使用回调: 2:使用virtual方法: 设计活动还有其他方法或想法吗 及 强>在ISO C++中设计事件的最佳模式是什么?< /强> < p>应使用BooS.Stor或Booost。 要模拟这些,您可以使用Boost.Function/std::Function的集合。 为了模拟这些情况,您可以使用类型擦除(因此虚拟函数路由)以提高灵活性 请注意,这些都不是很简单,因此如果可能,您应该尝试使用现有的解决方案。您应该使用Boost.Signals或Boo
virtual
方法:
设计活动还有其他方法或想法吗
及
<>强>在ISO C++中设计事件的最佳模式是什么?< /强> < p>应使用BooS.Stor或Booost。 要模拟这些,您可以使用Boost.Function/
std::Function
的集合。为了模拟这些情况,您可以使用类型擦除(因此虚拟函数路由)以提高灵活性
请注意,这些都不是很简单,因此如果可能,您应该尝试使用现有的解决方案。您应该使用Boost.Signals或Boost.Signals2。
要模拟这些,您可以使用Boost.Function/
std::Function
的集合。为了模拟这些情况,您可以使用类型擦除(因此虚拟函数路由)以提高灵活性
请注意,这些都不是很简单,因此如果可能的话,您应该尝试使用现有的解决方案。设计将取决于您需求的具体情况。有关一个很好的示例,请参见。设计将取决于您需求的具体情况。一个很好的例子,参见./P>注释:ISO C++现在指的是C++ 11ISO C++是语言构造和语义的标准,而不是一本指定或建议设计模式的书。每种方法都可以有自己的优点和缺点,你需要指定你的需求,以提出适当的解决方案。注意,ISO C++现在指的是C++ 11ISO C++是语言结构和语义的标准,而不是一本指定或建议设计模式的书。每种方法都可以有自己的优点和缺点,您需要详细说明您的需求,以便为您提供适当的解决方案。这应该是一个答案吗?因为它看起来、感觉和听起来都像一条评论,哦,是的,这是一条评论@Als:我不认为这是一个评论,而不是一个答案。@GMan:因为它不能帮助OP解决问题,这在我看来不是太难。Q不够清楚,无法回答,那么你应该寻求更多的信息来回答它,而不是发布一个答案作为答案。这应该是一个答案吗?因为它看起来、感觉和听起来都像一条评论,哦,是的,这是一条评论@Als:我不认为这是一个评论,而不是一个答案。@GMan:因为它不能帮助OP解决问题,这在我看来不是太难。Q不够清楚,无法回答,那么你应该寻求更多的信息来回答它,而不是发布一个答案作为答案。
typedef void (*callback_type)(void);
class my_class
{
public:
my_class(callback_type c)
{
m_callback = c;
}
void raise_event()
{
m_callback();
}
private:
callback_type m_callback;
};
class my_class
{
public:
virtual void my_event() = 0;
void raise_event()
{
my_event();
}
};
class main_class : public my_class
{
public:
virtual void my_event()
{
// Handle EVENT.
}
};