这里是编译错误
kdtilemapper.cpp:14: error: 'tiles' was not declared in this scope
kdtilemapper.cpp:17: error: 'const class KDTileMapper' has no member named 'tiles'
这是有问题的代码。
KDTileMapper::KDTileMapper(const KDTileMapper & rhs):TileMapper(rhs,tiles)
{
source = rhs.source;
tiles = rhs.tiles;
}
这是类
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;
最佳答案
KDTileMapper::KDTileMapper(const KDTileMapper & rhs):TileMapper(rhs,tiles)
您正在将参数 rhs, tiles
传递给基类 TileMapper
构造函数。但是编译器不知道标识符 tiles
是什么。
可能你的意思是 -
KDTileMapper::KDTileMapper(const KDTileMapper & rhs):TileMapper(rhs,rhs.tiles)
// ^^^ newly added.
但是,如果您只是让 TileMapper
构造函数通过引用仅接收一个类型为 KDTileMapper
的常量参数,则根本不需要修改,因为 tiles
已经是 rhs
对象的一部分(如果它实际上是一个成员变量。但第二条错误消息说它不是)。
关于c++ - 不确定如何申报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838144/