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

时间:2016-05-01 01:54:09

标签: c++ class object struct member

我正在尝试制作战斗序列。现在我只是原型设计。

我想要做的是为一个类中的战斗序列定义一个函数,并初始化不同的怪物来对抗。我在.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.

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

int main() {

// Initiate Combat with a Tiger.

CombatSeq c;
c.tiger.sound = "tiger.ogg";
c.tiger.picture = "tiger.jpg";
c.fight(c.tiger); 
}

那就是说,拥有怪物类型成员的CombatSeq对我来说毫无意义。没有更多信息,很难推荐更好的方法。