【发布时间】:2012-10-16 20:57:30
【问题描述】:
假设我有两个完全不同的对象,Sprite 和 PhysicsData。
我编写了一个空基类和一个容器类,可以将对象推送到容器或从容器中移除。
我创建了两个这样的容器来存储两个不同的对象 - Sprite 和 PhysicsData。 (不同的对象不在同一个类中)
class base
{
};
class ContainerManager
{
public:
std::vector<base*> list;
void Push(base *object);
void Remove(base *object);
};
class PhysicsData : public base
{
void applyGravity();
};
class Sprite : public base
{
void Draw();
};
ContainerManager SpriteContainer;
ContainerManager PhysicsDataContainer;
Sprite aSprite;
SpriteContainer.Push(&aSprite);
PhysicsData SomeData;
PhysicsDataContainer.Push(&SomeData);
这是应该下注的方式吗?
【问题讨论】:
-
它会给你任何错误还是什么?
-
不要只使用
pre作为代码。通过在其前面放置 4 个空格来格式化它。 -
我才刚开始接触 c++,很好奇。
-
我不明白。您定义了一个公共基础,因此您可以(大概)在同一个容器中压缩不同的对象。但是随后您制作了两个容器并将它们分开存放。是什么赋予了?为什么不只拥有两个不同类型的容器?
-
一个
std::vector不管是什么类型的接口都是一样的,那么ContainerManager给你买了什么?
标签: c++ containers