2

この質問をするのはとてもつらいです。答えはわかっていますが、完全に空白にしています。

私のプログラムとは、損傷を表示する単純なプログラムです。必要なのは、機能攻撃でクラスの敵とボスを呼び出すことができることだけです。したがって、基本的に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;
}
4

1 に答える 1

6

クラス メンバー宣言で既定の引数を指定します。

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

private:
    int m_Damage;
};

実装の残りの部分はそのままでかまいません (ただしm_Damage、この時点で必要かどうかわからないので、デフォルトで自分自身をゼロに構築するか、使用することさえしません)。

于 2013-08-31T21:37:29.407 に答える