c++ - 不确定如何申报

标签 c++ declaration

这里是编译错误

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/

相关文章:

c++ - 为什么需要前向声明?

c++ - 构造函数语法周围的括号

c++ - Qt C++ 读写文件

c++ - 获取尺寸较小的矩阵的子矩阵

c - 声明说明符中的两个或多个数据类型

c - #ifdef(或其他预处理器指令)是否适用于函数声明(以测试函数是否存在)?

java - Android Studio变量最终声明问题

c++ - 如何创建带有图标的 C++ 按钮

c++ - 对象数组

java - 代码模型数组