2015-02-04 83 views
0

我正在用C++編寫一個程序,我正在使用的外部頭文件在類聲明中非常自由地使用typedefs。可以訪問在類聲明中聲明的typedef嗎?

所以,當我去查找函數的返回類型,我會看到GlobalVariableList FooBar(),但後來實際存儲它返回的類型,我不能只用GlobalVariableType,因爲其內聲明的iplist<GlobalVariabl>一個typedef我在頭文件中引用類。

是否有可能從類的外部訪問類中聲明的類的typedef?

+0

取決於typedef的是公共的。另外,'auto'是你的朋友。 –

+0

@ T.C。 typedef是在公共部分,所以是啊...是啊,但你不能使用汽車的一切 – Earlz

回答

4

你可以做到這一點,如果typedef的是公共

class foo 
{ 
public: 
    typedef std::vector<bar> barContainer; 
//... 
} 

foo::barContainer 
+0

啊,這個工程!我發誓我嘗試過這種方式,但它沒有奏效,但我想當我嘗試使用錯誤的名稱或其他名稱時。 – Earlz

1
classname::typedefname 

應該像一個魅力; GNU收音機,這一切的地方:

basic_block

basic_block::basic_block(const std::string &name, 
    io_signature::sptr input_signature, 
    io_signature::sptr output_signature) 

io_signature

typedef boost::shared_ptr<io_signature> sptr;