В настоящее время я испытываю проблему, которую просто не могу понять, почему это происходит.
В моей (Unsplit) программе я создал класс, который определяет объект-сущность и способен прекрасно обрабатывать его создание и переменные (как я проверял перед добавлением
std::string getName(Entity)const;
std::string getType(Entity)const;
int getDamage(Entity)const;
int getHealth(Entity)const;
Но когда я это сделаю ... Хотя они уже объявлены публично в классе, и я полностью могу вызвать Initialize (); Атака(); и PrintStats (); просто отлично, он не видит остальные четыре и поэтому не может быть вызван.
#include <iostream>
#include <string>
#include <math.h>
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
using namespace std;
class Entity
{
public:
Entity() { // default constructor
name = "Human";
type = "Normal";
damage = 1;
health = 100;
}
void printStats();
void Initialize(string, string, int, int); //transformer or setting function
void Attack(Entity&); //observer or getter function
std::string getName(Entity)const;
std::string getType(Entity)const;
int getDamage(Entity)const;
int getHealth(Entity)const;
private://data members and special function prototypes
std::string name;
std::string type;
int damage;
int health;
};
void summonEnemy(Entity&);
int main () {
/* initialize random seed: */
srand (time(NULL));
Entity Player;//declaring new class objects
Entity Enemy;//declaring new class objects
Player.Initialize("Player", "Normal", 10, 90);
summonEnemy(Enemy);
return 0;
}
void summonEnemy(Entity &target) {
target.Initialize("Enemy", "Normal", floor(rand() % 20 + 1), floor(rand() % 100));
cout << "An " << getType(target) << " type " << getName(target) << " has appeared with " <<
getHealth(target) << "HP and can do " << getDamage(target) << " damage.";
}
Сообщение об ошибке:
error:'getType' Was not defined in this scope.
error:'getName' Was not defined in this scope.
error:'getHealth' Was not defined in this scope.
error:'getDamage' Was not defined in this scope.
Отрежьте некоторый код, чтобы сузить его так, чтобы только то, что могло быть причиной проблемы, показывает ... Но, честно говоря, это, вероятно, нечто простое, чего я не вижу. Любая помощь приветствуется.