繁体   English   中英

C ++默认值

[英]C++ Default Values

问这个问题让我很痛苦,我知道答案,但是我完全空白了。

我的程序是一个显示损坏的简单程序。 我需要做的就是能够通过函数攻击将班级称为敌人和老板。 因此基本上是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;
}

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

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

private:
    int m_Damage;
};

您的实现的其余部分可以保持原样(尽管我会默认将m_Damage自己构造为零,甚至不使用它,因为我不确定此时是否需要它)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM