私のクラスGameにはメンバーがいEntityManager entityManager_ます。
このクラスEntityManagerには、プライベート メンバーと、を返すPlayer player_パブリック ゲッター関数があります。Player &EntityManager::getPlayer()player_
クラスPlayerには、たとえば関数void startMoving()とsf::Vector2f getPosition() const.
entityManager_.getPlayer().startMoving();これで、クラス内から問題なく呼び出すことができますGameが、たとえば次のコードを試してプレーヤーの位置を取得しようとすると:
sf::Vector2f playerPosition = entityManager_.getPlayer().getPosition();
次のエラーが表示されます。
インテリセンス:
EntityManager Game::entityManager_
Error: the object has type qualifiers that are not compatible with the member function
object type is: const EntityManager
出力:
game.cpp(261): error C2662: 'EntityManager::getPlayer' : cannot convert 'this' pointer from 'const EntityManager' to 'EntityManager &'
Conversion loses qualifiers
constプレーヤーの getPosition 関数からを削除しようとしましたが、何も変わりませんでした。
おそらく何か関係があることは知っていますが、const何を変更すればよいかわかりません! 誰か助けてくれませんか?