-1

重複の可能性:
C++-前方宣言

だから私のヘッダーファイルには、Userという名前のすべての機能で定義/宣言されたクラスがあります

次に、.cppソースファイルの上部にありますclass User;

私はcに不慣れですが、私が調べたいくつかのチュートリアルで答えを見つけることができなかったので、ここに来ました

それは何をするためのものか ?

ありがとうございました。

4

3 に答える 3

2

これは前方宣言と呼ばれ、コンパイラーが実際にその内部を知らなくてもクラスを認識できるようにします。そのようなクラスが存在することをコンパイラに通知するだけで、そのクラスへのポインタを宣言してもエラーは発生しません。

別の方法は、クラスを宣言する対応するヘッダーファイルをインクルードすることですが、必要なのがそのタイプへのポインターだけである場合、それは非常に重くなります。

于 2012-10-16T08:20:09.083 に答える
1

これはいわゆる「前方宣言」です。実際に定義することなく、クラスをコンパイラーに認識させます。これはCではなくC++であることに注意してください。

于 2012-10-16T08:20:26.063 に答える
0

実際に定義せずにクラスを宣言します。その意味で、それは次のように違いはありません。

void doSomething(void);

そのプロトタイプはコンパイラーにdoSomething()存在することを伝えますが、実際にはそれが何をするかを指定しません。

これは通常、クラスが存在する必要がある場合(何らかの方法で参照できるようにするため)に使用されますが、そのプロパティについて何も知る必要はありません。

于 2012-10-16T08:24:00.837 に答える