0

从我的阅读中,我了解到您不需要像在 Objective-C 中那样在 C++ 中使用 typedef。例如,在 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;

正确的?如果没有typedef在 Objective-C 中,您必须myOrder通过重复定义enum

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

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

4

1 回答 1

2

其实这一点也不奇怪,Objective-C 是 C 的超集,在 C 中你必须enum再次使用关键字(对于关键字struct),这样才能保持一致。

如果您希望敏捷版本切换到 Objective-C++,作为 C++ 的超集,它允许不那么冗长的版本,而无需typedef.

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

于 2012-11-16T03:34:19.753 回答