operator() mojaklasa is not a class or namespace

0

witam, mam problem z działaniem przeładowanego operatora. Tak on wygląda:

environment& gameMap::operator()(const unsigned int i, const unsigned int j)
{
    return _chessboard[j+1][i+1];
}
const environment& gameMap::operator()(const unsigned int i, const unsigned int j) const
{
    return _chessboard[j+1][i+1];
}

w main takie coś działa:

Mapa(0,0).wall()=1;

natomiast gdy przekażę próbuję to przekazać do innego obiektu

 interface.setMap(&Mapa); 

to przy wywołaniu: map::operator()(1,1)->isEndMap()

 dostaję błąd: 
> map is not a class or namespace

gdy próbuję zaś wywołać ten operator tradycyjnie 
```cpp
map(1,1)->isEndMap()

to

error: ‘((wrapper*)this)->wrapper::map’ cannot be used as a function|

w klasie wrapper map jest wskaźnikiem. Może ktoś wpadnie co spaprałem :)

EDIT:
rozwiązaniem jest taka konstrukcja:

 gameMap& tempMap=*map; 

tylko nie rozumiem dlaczego. Wywołując operator na tempMap wydaje się działać.

0

map::operator()(1,1)->isEndMap() a nie powinno być tak: map.operator()(1,1)->isEndMap() jak już, no bo odwołujesz się do obiektu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1