gpt4 book ai didi

c++ - 从所有类访问对象数组

转载 作者:行者123 更新时间:2023-11-28 03:06:51 25 4
gpt4 key购买 nike

首先,请原谅我糟糕的英语。

好吧,我正在尝试使用 Allegro 的库在 C++ 中制作一个简单的游戏,但我不知道如何创建一个可以从所有类访问的对象数组。

更准确地说,我在主类的 main() 函数中有这段代码:

CBody **objs = new CBody*[n];
objs[0] = new CBall(320,240);
objs[1] = new CRing(500,120);

然后我需要在 CBall 的类中创建一个函数来检查与 CRing 实例的冲突。像这样的东西:

bool CBall::CheckRingCol(){
return (colCircle(myX,myY,myRadious,objs[1]->myX,objs[1]->myY,objs[1]->myRadious));
}

有什么想法吗?

谢谢你们,伙计们!

最佳答案

首先,不要疯狂使用双指针。你不需要它。

你有一个 CBody 数组,它大概是一个基类(有助于发布更多代码)

#include <memory>
typedef shared_ptr<CBody> spBody;

vector<spBody> bodies;
bodies.emplace_back( spBody(new CBall(320, 140)) ); // don't need to bother about delete when you use a shared_ptr
bodies.emplace_back( spBody(new CRing(500, 120)) );

谁叫球环碰撞?

您可以将环作为参数传递给 bool CBall::CheckRingCol(const CRing*) const

关于c++ - 从所有类访问对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19455939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com