C++:为类中对象的数据成员赋值

C++ : assign values to data members of an object within a class

本文关键字:数据成员 赋值 对象 C++      更新时间:2023-10-16

我正在尝试制作一个战斗序列。现在我只是在做原型。

我想做的是为类中的战斗序列定义一个函数,并初始化不同的怪物进行战斗。我在.h文件中创建了一个名为"monster"的数据结构。然后,我在类中初始化怪物老虎。但是当我进入我的cpp来给出它的声音和图片时,我会遇到错误。

我最终想做的是:

#include <iostream>
#include "CombatSeq.h"
int main() {
    // Initiate Combat with a Tiger.
    CombatSeq c;
    c.fight(c.tiger); 
}

这是我的代码:

.h文件:

#ifndef SOURCE2_COMBATSEQ_H_
#define SOURCE2_COMBATSEQ_H_
#include <iostream>
struct monster {
    std::string sound;
    std::string picture;
};
class CombatSeq {
public:
    void fight(monster t);
    monster tiger;
private:
};
#endif /* SOURCE2_COMBATSEQ_H_ */

cpp文件:

#include "CombatSeq.h"
#include <iostream>

void CombatSeq::fight (monster t) {
    std::cout << t.picture;
    std::cout << t.sound;

}
// What would I put here to give tiger.sound & tiger.picture values?
// I have tried:
monster CombatSeq::tiger;
CombatSeq::tiger.sound = "tiger.ogg";
// But to no avail.

谢谢你的帮助!

有很多方法可以做到这一点。构造函数可能是一个不错的选择。不过,这会让你达到你想去的地方。。。。

int main() {
// Initiate Combat with a Tiger.
CombatSeq c;
c.tiger.sound = "tiger.ogg";
c.tiger.picture = "tiger.jpg";
c.fight(c.tiger); 
}

也就是说,CombatSeq有一个怪物类型的成员对我来说意义不大。如果没有更多的信息,很难推荐更好的方法。