【发布时间】:2016-04-14 01:01:06
【问题描述】:
我正在用 C++ 创建一个生态系统,其中 每个 ANIMAL 在我的playing_field 上将在今年年底grow_older()。
class ANIMAL
{
private:
int age;
public:
ANIMAL()
{
age=0;
}
static void grow_older(){ age++; }
};
我知道static methods can only use static data,但是有没有什么优雅的方式可以拥有类似于ANIMAL.grow_older(); 的东西?我可以遍历我的playing_field 并在每只动物上调用grow_older();,但我希望有一些我不知道的概念可以避免明确地遍历ANIMAL 的每个实例。
【问题讨论】:
-
在此处询问有关 C++ 的问题时,应将 C++ 作为标记。
-
如果每只动物都需要自己的
age实例,您可以改为存储一个固定数据成员time_of_birth并增加一个静态current_time...然后仅在需要时计算差异。当ANIMAL“出生”(构造?)时,您将分配time_of_birth = current_time; -
但是……这个请求对我来说没有多大意义。动物不是动物的集合。
-
playing_field 是一个二维的动物数组
-
@mah 您能否在下面发布您的解决方案作为答案?我不明白