无法声明对象

时间:2011-11-17 15:47:48

标签: c++

我在这一行收到错误:

Attack a("Nothing", 60, Magic);

这是错误:

..\main.cpp:11: error: expected `;' before "a"
..\main.cpp:11: warning: statement has no effect

以下是相关文件: main.cpp中:

#include "Attack.h"

int main() {
    Attack a("Nothing", 60, Magic);

    return 0;
}

Attack.h:

#ifndef ATTACK_H_
#define ATTACK_H_

#include <string>
#include <stdlib.h>
#include <time.h>

enum ATTACK_ATTRIBUTE {
    Attack, Speed, Magic
};

class Attack {
private:
    std::string name;
    int power; //Out of 10
    ATTACK_ATTRIBUTE attribute;

public:
    Attack(std::string name, int power, ATTACK_ATTRIBUTE attribute);
    virtual ~Attack();

    std::string getName();

    ATTACK_ATTRIBUTE getAttribute();

    int getPower();
};

#endif /* ATTACK_H_ */

3 个答案:

答案 0 :(得分:5)

你有一个名为'Attack'的类和一个枚举器。尝试将其中一个名称更改为其他名称。

答案 1 :(得分:2)

枚举值Attack与攻击类位于同一名称空间中,并且它们是冲突的。

答案 2 :(得分:-1)

您已在头文件中定义了Attack类,但我没有看到它的实现。你不需要实现类方法吗?