2014-02-08 3 views
-2

играл с SFML и игры программирования игр на некоторое время, но я «ожидается выражение»Ожидаемое выражение

вот мой код .h файл

#include <SFML\Graphics.hpp> 

    using namespace std; 

    class TileSet 
    { 
    public: 
    TileSet(int firstTile, int tileWidth, int Tileheight, string filename); 
    sf::Texture* GetTileSet() const; 
    int FirstTileNo(); 
    int TilesCount(); 

    private: 
    sf::Texture tileset; 
    int firstTileNo; 
    int tilesCount; 
    }; 

.cpp файл

#include "TileSet.h" 

    TileSet::TileSet(int firstTile, int tileWidth, int tileHeight, 
      string filename):firstTileNo(firstTile) 
    { 
    tileset.loadFromFile(filename); 

    int tilesInWidth = tileset.getSize().x/tileWidth; 
    int tilesInHeight = tileset.getSize().y/tileHeight; 

    tilesCount = tilesInWidth * tilesInHeight; 
    } 

    sf::Texture* TileSet::GetTileSet() const 
    { 
    return tileset* ; 
    } 

ошибка указывает на «возврат плитки *;»; заявление

+3

ну да. что вы ожидаете от 'titleset * '? это синтаксическая ошибка. –

+0

, если вы хотите вернуть адрес 'tileset', используйте' & tileset'. – wimh

+0

жаль, что я забыл упомянуть, что я попробовал это «& tileset», и я получил эту «ошибку C2440:« return »: не могу преобразовать из 'const sf :: Texture *' в 'sf :: Texture *' – Ahmad

ответ

1

Wimmel в своем комментарии является правильным. Вам нужно изменить tileset*; к &tileset; Это вернет указатель на ваш tileset

EDIT: должен быть return &(const sf::Texture)tileset;, но я не уверен, что это то, что вы хотите. Я не эксперт на C++, и корректность состязания - это не мой сильный костюм, поэтому я мог бы сделать еще несколько исследований по корректности const, чтобы убедиться, что это то, что вы действительно хотите или нет.

+0

извините, что забыл упомянуть Я попробовал это «& tileset», и я получил эту «ошибку C2440:« return »: не могу преобразовать из« const sf :: Texture * »в 'sf :: Texture *' – Ahmad

+0

Это потому, что ваша функция GetTileSet()' const' Я отредактирую свой ответ – vane

+0

Да, это решило это спасибо – Ahmad

Смежные вопросы