-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