簡體   English   中英

Objective-C與C ++中的Typedef要求

[英]Typedef requirement in Objective-C vs C++

從我的閱讀中,我收集到你不需要在C ++中使用typedef,就像在Objective-C中一樣。 例如,在C ++中,您可以這樣做:

enum Order {first,second,third};
Order myOrder;
myOrder=first;

但是在Objective-C中,行Order myOrder; 首先需要一個typedef

typedef enum {first,second,third} Order; //noting also the placement of Order at the end
Order myOrder;
myOrder=first;

正確? 如果沒有Objective-C中的typedef ,你必須通過重復enum來定義myOrder

enum Order {first,second,third};
enum Order myOrder;
myOrder=first;

如果事實上這一切都是正確的,我發現在語言中存在這種類型的語法差異有點奇怪,因為兩者都基於C並且這些都不是語言的面向對象性質所獨有的,因此應該只是筆直的CI會想。

實際上這並不奇怪,Objective-C是C的超集,而在C中你必須再次使用關鍵字enum (對於關鍵字struct ),這樣就是連貫的。

如果您希望敏捷版本切換到Objective-C ++,那么作為C ++的超集允許不那么詳細的版本而不需要typedef

實際上Objective-C不是基於 C,它是C + Obective-C所以它是它的真正擴展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM