与不同类型的合作伙伴排队活动 [英] queuing events with different kind of partners

查看:95
本文介绍了与不同类型的合作伙伴排队活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个类似的事件结构:

I have an event struct like that:

struct Event
{
    public:
        double time;
        Ball partners[2];
};



我检查池球的碰撞时间。我正在将所有可能的事件添加到列表中。如果合作伙伴只是球,那将很容易。但是我需要检查表的边缘。所以我想我需要这样的东西:


I check collision times of pool balls. I'm adding all possible events to a list. If partners were only balls it would be easy. However i need to check edges of table. So i think i need something like that:

Partner partners[2];



但是如何?如果我从伙伴类继承球和边缘类,我在传回时会丢失信息。



有什么建议吗?


But how? If I inherit both ball and edge class from a partner class I loose information when transferring back.

Any suggestion?

推荐答案

另一种方法是使Event成为基类并派生多种类型的事件。基类只包含时间成员,也可能包含事件类型。派生类带来其余部分。



不要忘记将该事件基类的析构函数设为虚拟!
The alternative is to make Event a base class and derive multiple types of events. The base class would just contain the time member and perhaps an event type. The derived classes bring in the rest.

Don't forget to make the destructor of that Event base class virtual!


这篇关于与不同类型的合作伙伴排队活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆