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;

正しい?typedefObjective-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 に答える