Как эта частная переменная «не объявлена ​​в этой области видимости»?

В настоящее время я пытаюсь больше узнать об объектно-ориентированном дизайне на 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;
}

Я не вижу никаких проблем ни с одним из них, но, тем не менее, когда я пытаюсь их скомпилировать, я получаю следующую ошибку от 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 ++. модель наследования.

6
задан XBigTK13X 20 January 2011 в 05:40
поделиться