私はコードを閲覧しており、ヘッダーファイルにそのような構成が表示されるようになりました:
...
class ClassName* MethodName(int foo) const;
...
ClassName は、他のヘッダー ファイルで定義されているクラスです。編集:質問をより明確にするために。特に class キーワードに興味がありました。
私はコードを閲覧しており、ヘッダーファイルにそのような構成が表示されるようになりました:
...
class ClassName* MethodName(int foo) const;
...
ClassName は、他のヘッダー ファイルで定義されているクラスです。編集:質問をより明確にするために。特に class キーワードに興味がありました。
キーワードclass
はオプションです*。
したがって、(同等の)コード行
ClassName* MethodName(int foo) const;
関数を定義する
int
を引数としてとるClassName
インスタンスへのポインタを返しますthis
ポインターは関数内の const です)*これが書けることすら知らなかったのは珍しいことです。C では、通常struct StructName
、何らかの構造体型の変数 (または関数のパラメーター/戻り値の型) を定義する場合に記述します。C 構造体はクラスの概念に似ているため (C++ では構造体はクラスであることに注意してください) 、互換性の理由から構造体/クラス名の前に と を記述struct
できるようです。class
C++ は、C コードをほとんど変更せずに解析できるように設計されています (これらは 2 つの別個の言語ですが)。基本的に、クラス名の前にキーワードclass
orを付けても意味がありません。struct
いわゆる精巧な型指定子です。宣言領域に新しいクラス名を導入します。つまり、あなたの例では ClassName が新しいタイプとして導入されています。