Reputation: 11
Here's the compiler error
kdtilemapper.cpp:14: error: 'tiles' was not declared in this scope
kdtilemapper.cpp:17: error: 'const class KDTileMapper' has no member named 'tiles'
here is the code in question.
KDTileMapper::KDTileMapper(const KDTileMapper & rhs):TileMapper(rhs,tiles)
{
source = rhs.source;
tiles = rhs.tiles;
}
here is the class
class KDTileMapper : public TileMapper
{
public:
KDTileMapper( const SourceImage & si,const vector<TileImage> & tiles);
~KDTileMapper();
KDTileMapper(const KDTileMapper & rhs & tiles);
KDTileMapper const & operator=(KDTileMapper const & rhs);
int map_tiles(MosaicCanvas & mosaicOut) const;
private:
KDTree<TileImage>* tileMapKDT;
Upvotes: 0
Views: 94
Reputation: 34665
KDTileMapper::KDTileMapper(const KDTileMapper & rhs):TileMapper(rhs,tiles)
You are passing the arguments rhs, tiles
to the base class TileMapper
constructor. But the compiler doesn't know what the identifier tiles
is.
Probably you meant -
KDTileMapper::KDTileMapper(const KDTileMapper & rhs):TileMapper(rhs,rhs.tiles)
// ^^^ newly added.
But the modification is not at all required if you just make the TileMapper
constructor receive just one const argument of type KDTileMapper
by reference because tiles
is already part of the rhs
object ( if it is actually a member variable. But the second error message says it isn't ).
Upvotes: 2
Reputation: 725
You should put private TILES_TYPE tiles in KDTileMapper class definition or TILES_TYPE tiles in constructor
Upvotes: 0