提出这个问题让我很难过,我知道答案,但我只是完全消错了。
我的程序是一个显示损坏的简单程序。我所需要的就是能够通过功能攻击来调用我的类敌人和boss。所以基本上enemy.Attack()
或者能够像这样enemy.Attack(30)
调用并使输出看起来不同。
以下是需要发生的事情:
enemy.Attack()
输出:10
enemy.Attack(30)
输出:30
每次尝试空括号版本时,都会收到错误“函数不带0参数”
class Enemy
{
public:
Enemy();
void Attack();
private:
int m_Damage;
};
#include <iostream>
#include "enemy.h"
Enemy::Enemy() : m_Damage(10)
{}
void Enemy::Attack(int damage)
{
m_Damage = damage;
std::cout << "Damage: " << m_Damage << std::endl;
}
答案 0 :(得分:6)
在类成员声明中提供默认参数:
class Enemy
{
public:
Enemy();
void Attack(int damage = 10);
private:
int m_Damage;
};
你的实现的其余部分可以保持原样(虽然我会默认构造m_Damage
为零,或者甚至不使用它,因为我不确定你现在需要它。) / p>