我正在尝试使用C++创建类似以下内容的东西:
我有一个名为particle的类,它将存储每个粒子的位置和速度。此外,一个成员函数将使用速度数据更新粒子的位置。
我还尝试编写一个函数,用于检测粒子与盒子边界之间的碰撞。为此,该函数需要访问每个粒子的位置和速度。因此,该函数需要将整个粒子数组作为参数。但是,该函数不能作为粒子类的成员函数存在,因为它将无法访问所有粒子。
问题:在哪里包括碰撞检测函数,以使其成为粒子类的可扩展部分?
我考虑只是将此函数编写在main.cpp文件中,但我不知道这是否符合面向对象编程准则。理想情况下可能会有其他函数也作用于粒子数组。
我有一个名为particle的类,它将存储每个粒子的位置和速度。此外,一个成员函数将使用速度数据更新粒子的位置。
我还尝试编写一个函数,用于检测粒子与盒子边界之间的碰撞。为此,该函数需要访问每个粒子的位置和速度。因此,该函数需要将整个粒子数组作为参数。但是,该函数不能作为粒子类的成员函数存在,因为它将无法访问所有粒子。
问题:在哪里包括碰撞检测函数,以使其成为粒子类的可扩展部分?
我考虑只是将此函数编写在main.cpp文件中,但我不知道这是否符合面向对象编程准则。理想情况下可能会有其他函数也作用于粒子数组。
particle
类的角色(主要是它是否设计用作基类)以及您想要表示边界框的方式。还要注意,很多C++代码(也许大部分),几乎所有的C++标准库都是设计时不遵循面向对象编程指南的。C++允许使用除OOP之外的其他编程范例。 - Steve Jessop