クラス型や型定義の使用

クラス型で typedef の指定子の使用は typedef の宣言の無名構造体の宣言の ANSI C の推奨事項については主としてサポートされます。たとえば多くの C プログラマは次を使用します :

// typedef_with_class_types1.cpp
// compile with: /c
typedef struct {   // Declare an unnamed structure and give it the
                   // typedef name POINT.
   unsigned x;
   unsigned y;
} POINT;

このような宣言の利点は宣言ができるようにすることです :

POINT ptOrigin;

ではなく :

struct point_t ptOrigin;

C++ ではtypedef の名前の相違点と実際の型 ( クラス struct 共用体 と enum のキーワードで宣言) は異なります。typedef のステートメントで名前の構造体の宣言の C の推奨事項は引き続き動作するがC のように表記の利点はありません。

// typedef_with_class_types2.cpp
// compile with: /c /W1
typedef struct {
   int POINT();
   unsigned x;
   unsigned y;
} POINT;

前の例ではクラスを POINT とクラスの typedef のない構文を使用してとして宣言します。POINT はクラス名として扱われます ; ただし次の制限が名前についてこの方法で対象 :

  • 名前 (シノニム) は クラス structまたは 共用体 のプレフィックスの後では使用できません。

  • 名前はクラスの宣言内のコンストラクターまたはデストラクターの名前として使用できません。

まとめるとこの構文は継承構築または破棄の機能を提供しません。

参照

関連項目

型定義の指定子