2

typedef がない Java の世界から来て、C++ 開発者に質問があります。

私の仕事は、大規模な MATLAB プロジェクトを C++ で書き直すことです。コードの構造を理解するために、実際に機能を実装せずにモジュールとクラス構造を再構築し始めました。

Vectorや などのクラス/タイプが頻繁に必要にParameterListなることはわかっています。これらは、まだ決定していないフレームワークによって提供されます。

Typedefs.hそこで、次のような型定義を持つ中央ヘッダー ファイルを作成しました。

typedef void Vector; // TODO: set vector class
typedef void ParameterList; // TODO: set parameter list class

今のところ、これらは void に設定されていますが、これらの型を使用してクラス スケルトンとメソッド シグネチャを記述できます。後で、それらを実際の型に置き換えることができます。

これは理にかなっていますか?Typedefs.hはいの場合、すべてのファイルに手動で含めることを避ける方法はありますか?

4

2 に答える 2

6

たとえば、を使用しない限り、これが機能するとは思えませんVector*Vectorオブジェクトやパラメーターを持つことができないため、ほとんど無意味です。

また、ポインターとして使用するには、前方宣言を行うことができます。

とにかく、私はこれの必要性を本当に見ません。空のクラスを実装せずに宣言できますtypedef

 typedef void Vector;

 struct Vector{};
于 2012-04-17T13:32:02.610 に答える
3

typedef同じ型にマップされる s で関数をオーバーロードできないことに注意してください。

void foo(Vector);
void foo(ParameterList);   // error: foo(void) already declared
于 2012-04-17T13:32:12.820 に答える