私は現在、C ++(Javaに精通している)でのオブジェクト指向設計についてもっと学びたいと思っており、いくつかの壁にぶつかっています。グラフィックとオーディオにSFMLを使用して構築されたゲームでこれらの原則を学ぶために私がまとめようとしているプロジェクト。次の2つのファイルがあります。
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
このコードには何が欠けていますか?継承階層を設定する適切な方法を理解しようとすると、これまでのところゲームの開発で最も多くの問題が発生していますが、それは主に、C++の多重ではなくJavaの継承モデルを使用するように条件付けられているという事実が原因であることを知っています継承モデル。