-3
我是新来的对象编程和c + +。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;
}
和错误是:
标识符 “AP” 是未定义的。我看不到问题。谁能帮我?
在'attack'之前''setAttackPower'和'ninja ::'之前已经忘了'enemy ::'。 –
'void attack()'不是'ninja'的成员。 –
@Pete Becker'void attack()'是一个在忍者头文件中声明的公共方法。 @Alexey Guseynov如果我在'attack'之前把'enemy ::'放在'setAttackPower'和'ninja ::'之前,Visual Studio会向我发出错误信号。 – simmy