使用方法影响另一个对象的字段
Affecting another object's fields with methods
我必须编写一个带有类的程序,该程序模拟动物在二维数组中相互干扰。我正在尝试使用一维数组来做到这一点,但我遇到了一只动物撞击另一只动物的问题。我不知道该怎么做这样的事情。我声明了一个数组,如下所示:
animal **tab = new animal*[3];
tab[0] = new wolf(30, 0);
tab[1] = new sheep(100, 0);
tab[2] = new wolf(30, 0);
int n=1;
if (tab[3 + n] = tab[4])
{
cout << "HP left " << << endl;
}
下面是 wolf 类的代码:
class wolf : public animal {
public:
int atack()
{
return DMG;
}
int life()
{
return HP;
}
wolf(int a, int b):animal(a, b)
{
DMG = b;
HP = a;
}
};
我怎么让狼伤害羊的生命。我必须创建全局函数还是执行其他操作?
对象通过其方法进行交互。看起来你有一个动物类,你的狼类继承自它,希望你的羊类也继承自动物。 由于您没有在 Wolf 中声明 HP 或伤害变量,我猜它已经在您的动物类中了。
在 Animal 类中,您应该创建一个名为 receiveDamage 或类似方法的方法。该方法会修改 HP。
void receiveDamage(int damage) {
HP -= damage;
if (HP <= 0) {
cout << "Animal died" << endl;
}
}
现在在你的狼类中,你可以攻击,你想要你的攻击方法捕获目标动物。
void attack(Animal animal) {
animal.receiveDamage(DMG)
}
现在,当一只狼攻击另一只动物(一只绵羊或另一只狼或其他任何继承自动物的东西(时,伤害将应用于HP。
相关文章:
- 私有字段对象与私有继承?
- 我正在尝试一个傻瓜 C++ 练习,我遇到了一个错误,说类 'GraduateStudent' 没有任何名为 'advisor' 的字段
- 如何创建一个函数来提取向量内部字符串中的字段?
- 如何正确实例化静态字段 tat 是另一个类对象
- 为什么最后一个推回向量的对象的字段会转移到向量的其他对象?
- 对象引用中的字段以不同的方法返回不同的值
- 基于不同字段的对象向量的排序功能
- 动态分配对象中的字段-动态分配更好还是静态分配更好?C++
- C++11,仅将一个字段复制到向量中
- 如何从对象/类中找到第一个字段?
- 从一个类访问私有字段到另一个与C++中的前一个类无关的私有字段 (OOP)
- 使用方法影响另一个对象的字段
- 设计具有变体字段的文本类型类,其中可以存储一个或三个对象
- 通过另一个对象C++的字段中的指针访问对象
- 如何有效地从该对象中包含的另一个对象访问对象字段/属性
- 按一个字段对自定义对象向量进行排序
- 对象字段返回对象本身,而不是存储在字段中的实例
- 在std::set/std::map中存储具有多个不同类型字段的c++对象的有效方法
- 将具有const字段的对象插入到容器中
- 为什么这可以让我获得一个指向常量对象字段的非常量指针