c++ - 是否有使用同一类的另一个实例的类的设计模式?
问题描述
鉴于我正在尝试编写以下伪代码:
#define ANIMAL_NUMBER 10
#define MALE 1
#define FEMALE 0
class Zoo
{
public:
Animal* GetAnimal(int id) {return &animal[id];}
private:
Animal animal[ANIMAL_NUMBER];
};
class Animal
{
public:
Animal():sex_(rand()%2),speed_(rand()%100),life(100){}; //ctor
void Kill(Animal* animal)
{
animal->life_ = 0;
};
void KillSlowMaleAnimalsInZoo(void)
{
for(int id=0; id < ANIMAL_NUMBER; id++)
{
Animal* animal = Zoo::GetAnimal(id);
if((animal->GetLife() > 0) &&
(animal->GetSex() == MALE) &&
(animal->GetSpeed()<20))
{
Kill(animal);
}
};
int GetSex(void)
{
return sex_;
};
int GetLife(void)
{
return life_;
};
int GetSpeed(void)
{
return speed_;
};
private:
int sex_;
int speed_;
int life_;
};
是否有特定的设计模式来回答这个特定问题?
我想要的是访问 Animal 类定义本身中的另一个类 Animal 实例。
解决方案
推荐阅读
- c# - 仅为一类自定义日志提供程序列表
- android - 图片不显示?
- django - 在 Django 上提供上传的图片时出现问题
- openlayers - Openlayers 5. 错误。“aU 不是函数”
- php - 仅为特定页面更改永久链接结构 - WordPress
- python - Google Cloud Function - 函数加载错误:预期定义函数的文件 main.py 不存在
- r - 如何使用ggplot为变量绘制三个条形?
- bash - 在 unix 上带有变量的 printf
- c# - 如何使用 MVC 控制器中的操作内的重定向退后两步浏览器历史记录?
- yii2 - Yii2 Select2 也跨越了原始选择