如果我定義了一個嵌套類,然後創建這樣一個實例:如何創建一個在封閉類之外定義的嵌套類的實例?
class A
{
class B
{
...
};
B b;
};
一切正常。但是,如果我只是在A之內聲明B並在外部定義它,我不能創建B的一個實例,可能是因爲編譯器不知道B實例需要多少空間。但是當你在另一個類中定義一個類的時候,代碼是不太可讀的。有沒有辦法做到這一點?
class A
{
class B;
B b;
};
class A::B
{
...
};
如果你已經是一個向前聲明(這是一個不完整的類型,像你說的),你需要一個指針。如果你想在類之外定義一些東西,把成員的聲明放在那裏,然後做'void A :: B :: foo(){}'。 – chris
是的,但即使當你只將嵌套類的聲明放在裏面並定義外部時,我認爲它會使得封閉類更不可讀。無論如何,非常感謝你! – user2038014