2010-10-14 46 views
0
class class_name instance; 

class_name instance; 

以上所有與cl.exe一起工作,但它是標準的,是否與所有其他編譯器一樣?創建實例的C++語法

回答

3

class class_name instance;由C++語法中的elaborated-type-specifier非終結符允許。很難指向,告訴你這個標準的特定部分,因爲即使在給C++的語法,是相當分散的附錄,但生產基本上去(有許多步驟省略掉):

 
declaration-statement 
    ->type-specifierdeclarator ; 
    ->elaborated-type-specifierdeclarator ; 
    -> class identifierdeclarator ; 
    -> class identifierunqualified-id ; 
    -> class class_name instance ; 

相比之下,使用simple-type-specifier非終端產生class_name instance ;

 
declaration-statement 
    ->type-specifierdeclarator ; 
    ->simple-type-specifierdeclarator ; 
    ->type-nameunqualified-id ; 
    -> class_name instance ; 
2

是的,這是標準的,意味着同樣的事情。在C++中,class TT意味着相同的東西。語法來自C,其中struct TT不意味着同樣的事情。