Я новичок в программировании объектов и в C++.C++ class inheritance, identifier undefined
Я применяю то, чему учат в курсе 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;
}
и ошибка:
идентификатор "ар" не определен. Я не вижу проблемы. Может кто-нибудь мне помочь?
Перед 'атакой' вы забыли' враг :: 'перед' setAttackPower' и 'ninja ::'. –
'void attack()' не является членом 'ninja'. –
@Pete Becker 'void attack()' - общедоступный метод, объявленный в файле заголовка ниндзя. @Alexey Guseynov Если я поставил 'враг ::' перед 'setAttackPower' и' ninja :: 'перед' атакой', Visual Studio сигнализирует мне об ошибках. – simmy