0

私はコードを閲覧しており、ヘッダーファイルにそのような構成が表示されるようになりました:

...
class ClassName* MethodName(int foo) const; 
...

ClassName は、他のヘッダー ファイルで定義されているクラスです。編集:質問をより明確にするために。特に class キーワードに興味がありました。

4

2 に答える 2

2

キーワードclassはオプションです*。

したがって、(同等の)コード行

ClassName* MethodName(int foo) const;

関数を定義する

  • intを引数としてとる
  • ClassNameインスタンスへのポインタを返します
  • 呼び出されたインスタンスを変更しないことを約束します(thisポインターは関数内の const です)

*これが書けることすら知らなかったのは珍しいことです。C では、通常struct StructName、何らかの構造体型の変数 (または関数のパラメーター/戻り値の型) を定義する場合に記述します。C 構造体はクラスの概念に似ているため (C++ では構造体クラスであることに注意してください) 、互換性の理由から構造体/クラス名の前に と を記述structできるようです。classC++ は、C コードをほとんど変更せずに解析できるように設計されています (これらは 2 つの別個の言語ですが)。基本的に、クラス名の前にキーワードclassorを付けても意味がありません。struct

于 2013-10-27T20:25:17.977 に答える
0

いわゆる精巧な型指定子です。宣言領域に新しいクラス名を導入します。つまり、あなたの例では ClassName が新しいタイプとして導入されています。

于 2013-10-27T20:40:02.433 に答える