2011-07-27 64 views
0

這裏的編譯器錯誤不知道如何申報

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; 
+0

您應該爲我們提供更好的幫助。 –

+0

@Brain - 如果這是類「KDTileMapper」的完整聲明,那麼當編譯器抱怨時,它沒有名爲'tiles'的成員變量。 'KDTileMapper(const KDTileMapper&rhs&tiles);'?????? – Mahesh

回答

0

你應該把在KDTileMapper類定義或TILES_TYPE瓷磚私人TILES_TYPE瓷磚構造

2
KDTileMapper::KDTileMapper(const KDTileMapper & rhs):TileMapper(rhs,tiles) 

你傳入的參數rhs, tiles基類TileMapper構造函數。但編譯器不知道標識符tiles是什麼。

也許你的意思是 -

KDTileMapper::KDTileMapper(const KDTileMapper & rhs):TileMapper(rhs,rhs.tiles) 
                   // ^^^ newly added. 

但修改是,如果你只是讓TileMapper構造,因爲tiles已經是rhs對象的一部分(並非在所有需要通過基準接收KDTileMapper類型的只是一個常量參數如果它實際上是一個成員變量,但第二個錯誤消息說它不是)。