В настоящее время я пытаюсь узнать больше об объектно-ориентированном дизайне на C ++ (знаком с Java) и пробираюсь к некоторым стенам.Проект, который я пытаюсь собрать, чтобы изучить эти принципы в игре, построенной с использованием SFML для графики и звука.У меня есть следующие два файла.
WorldObject.h
#ifndef WORLDOBJECT_H
#define WORLDOBJECT_H
#include <SFML/Graphics.hpp>
#include <string>
#include "ImageManager.h"
class WorldObject
{
private:
sf::Sprite _sprite;
void SetImagePath(std::string path);
sf::Sprite GetGraphic();
};
#endif
WorldObject.cpp
#include "WorldObject.h"
void WorldObject::SetImagePath(std::string path)
{
_sprite.SetImage(*gImageManager.getResource(path));
}
sf::Sprite GetGraphic()
{
return _sprite;
}
Iне вижу проблем ни с одним из них, и все же, когда я пытаюсь скомпилировать их, я получаю следующую ошибку от g ++:
WorldObject.cpp: In function ‘sf::Sprite GetGraphic()’:
WorldObject.cpp:9: error: ‘_sprite’ was not declared in this scope
make: *** [WorldObject.o] Error 1
Чего мне не хватает в этом коде?Попытка понять, как правильно настроить иерархию наследования, до сих пор вызывала большинство проблем в разработке игры, но я знаю, что это в первую очередь связано с тем, что я более приспособлен к использованию модели наследования Java, а не множественного числа в C ++.Модель наследования.