C ++默认值

时间:2013-08-31 21:33:21

标签: c++

提出这个问题让我很难过,我知道答案,但我只是完全消错了。

我的程序是一个显示损坏的简单程序。我所需要的就是能够通过功能攻击来调用我的类敌人和boss。所以基本上enemy.Attack()或者能够像这样enemy.Attack(30)调用并使输出看起来不同。

以下是需要发生的事情:

enemy.Attack()输出:10

enemy.Attack(30)输出:30

每次尝试空括号版本时,都会收到错误“函数不带0参数”

Enemy.h

class Enemy
{
public:
    Enemy();
    void Attack();

private:
    int m_Damage;
};

Enemy.cpp

#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;
}

1 个答案:

答案 0 :(得分:6)

在类成员声明中提供默认参数:

class Enemy
{
public:
    Enemy();
    void Attack(int damage = 10);

private:
    int m_Damage;
};

你的实现的其余部分可以保持原样(虽然我会默认构造m_Damage为零,或者甚至不使用它,因为我不确定你现在需要它。) / p>