如何定义一个运算符,其中一个操作数是定义的类型,另一个是int? 我有一个类Damage
和Damage.h
这样定义:C++运算符重载与基元类型
#pragma once
class Damage
{
public:
Damage(int, int = 0, int = 0);
int operator-= (int& num)
{
return num - this->GetDamage();
}
private:
int damage;
int dotDamage;
int dotDamageLength;
};
,我试图用这样的运营商Monster.cpp
:
#include "Monster.h"
#include "Damage.h"
int Monster::TakeDamage(Damage& damage)
{
this->health -= damage; // Error Here
return this->health;
}
的错误是: “不操作” - =“匹配这些操作数 操作数类型是int - =损坏
我也尝试过使用-
运算符,诱惑,在课堂外定义它,传递两个不同的参数,但没有任何工作。
你写的怪物:: TakeDamage的方式,“健康”应该是一个类以及(不是int),接受伤害类覆盖的运算符...(并访问运算符中的int值)。 – TomSmartBishop
我认为这一点,但正如我重新考虑这一点,这样做将允许像最大值和最小值,如0,100(0将是静态的),并限制健康可以增加或不限制...感谢寻求帮助! – AustinWBryan