2015-02-09 51 views
1

繼承我想有一個類繼承其封閉類,如:C++:如何從封閉

class A : public A::B { 
public: 
    class B {}; 
}; 

然而,complainsA::B沒有定義編譯:

error: expected class-name before '{' token 
class A : public A::B { 

也就是說,A::BA的定義完成之前將不可用。

我試圖前言以上

class A; 
class A::B; 

但它並不能幫助。我怎樣才能得到正確的聲明和定義?

注意:本質上,我試圖做與this question相反。

回答

3

在您指定繼承的位置,內部類尚不知道。因此你不能那樣做。但是,如果要限制範圍,那麼只需使用名稱空間,例如稱爲detailimplementation

3

這是不可能的,沒有定義外部類沒有辦法聲明內部類。