例如,利用此代碼段:如何轉發聲明我將使用typedef創建的類型?
class Foo;
class Something {
Foo *thing;
};
typedef std::vector<Something> Foo;
這並不編譯,因爲Foo
已經是一個類型,當typedef
被擊中。不過,我認爲這說明了我的用例;我有周期性的依賴關係,需要一個來完成其他的,但(目前)其中的一件事是typedef'd。我寧願不寫類似
class Foo {
std::vector<Something> inside;
}
,因爲那時我需要記住inside
每my_foo.inside.some_method()
。我還想避免在std::vector<Something>
周圍寫一個包裝,因爲它會有很多樣板。
我該如何轉發聲明我正在用typedef
定義的類型?另外,如何使用上述解決方案之一解決我的週期性依賴問題而不使用?它有可能嗎?
請注意,我不是問「我怎樣才能typedef
與尚未申報的類型」。我在問「如何使用typedef
來定義先前聲明的類型」。
道歉,如果任何術語關閉。我從來沒有真正學過它。請隨時糾正我的疑問或者質疑假設。 –
'typedef Foo;'也許 –
@ Jean-FrançoisFabreIIRC那是一個編譯錯誤 –