2015-09-20 64 views
0

我有一個簡單的類:如何訪問在另一個類中聲明的類?

class cup{ 
public: 
    cup(); 
    void drinkwater(water *t); // error occurs here 
private: 
    class water{ 
    public: 
      int litres; 
    }; 
}; 

不過,我得到一個錯誤,說「水」尚未聲明。有沒有什麼辦法可以進入這個班,而不需要在外面放水?在drinkwater上述定義的私人部分

+0

你一樣的命名空間做:'杯:: water' – user4581301

+3

聲明,如果你之前提到它在'drinkwater' 。請參閱[本示例](http://ideone.com/AXWNzB)。但是你應該澄清你打算如何使用它。 – juanchopanza

+0

僅供參考,即使在'私人'的情況下,您也可以使用它。 [(我相信這是合法的)](http://coliru.stacked-crooked.com/a/94c94fea7f980dfe)(我檢查,它是)。但正如@ juanchopanza所說,知道你的打算會很好。 –

回答

1

前向申報class water;,像

class cup{ 
    class water; 
public: 
    cup(); 
    void drinkwater(water *t); // error occurs here 
private: 
    class water{ 
    public: 
      int litres; 
    }; 
}; 
相關問題