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

时间:2012-11-16 03:31:07

标签: c++ objective-c 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,您必须通过重复myOrder来定义enum

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

如果事实上这一切都是正确的,我发现在语言中存在这种类型的语法差异有点奇怪,因为两者都基于C并且这些都不是语言的面向对象性质所独有的因此,应该只是CI会想到的。

1 个答案:

答案 0 :(得分:2)

实际上这并不奇怪,Objective-C是C的超集,而在C中你必须再次使用关键字enum(对于关键字struct),这样才能保持连贯。

如果您希望敏捷版本切换到Objective-C ++,那么作为C ++的超集允许不那么详细的版本而不需要typedef

实际上Objective-C不是基于 C,它是C + Obective-C所以它是它的真正扩展。