c ++类继承,标识符未定义

时间:2016-09-29 20:52:53

标签: c++ inheritance

我是对象编程和c ++的新手。

我正在应用SoloLearn c ++课程中关于类继承的内容。

阶级敌人: enemy.h

class enemy
{
public:
    enemy();
    ~enemy();
    void setAttackPower();
protected:
    int aP;
};

enemy.cpp

#include "enemy.h"
#include <iostream>
using namespace std;

enemy::enemy()
    {
        cout << "constructor" << endl;
    }
enemy::~enemy()
    {
        cout << "destructor" << endl;
    }

int aP=0;
void setAttackPower(int a) {
        aP = a;
    }

类忍者,继承敌人: 的 ninja.h

#include "enemy.h"

class ninja: public enemy
{
public:
    ninja();
    ~ninja();
    void attack();
};

ninja.cpp

#include "ninja.h"
#include <iostream>
using namespace std;

ninja::ninja()
{
}

ninja::~ninja()
{
}

void attack() {
    cout << "Ninja attack " << aP << endl;
}

,错误是:

标识符&#34; aP&#34;未定义。我看不出问题所在。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

enemy.cpp int aP = 0; 您创建了2个具有相同名称的值:1st属于class,2nd是全局值。编译器无法确定您尝试使用哪一个。