2011-09-08 24 views
1

で++理由があるない場合は、この構造体とクラスCではC++

struct foo { 

} 

のような構造体やクラスを作成する場合は、あなたがCでそうであるように別のものを作成するために、構造体やクラス修飾子を使用する必要がありますか?とき、C++

構造体FOOでそれを使用するのが適切であろう。 C++でインスタンス化中

+0

構造体はC++でパブリッククラスとして動作し、新しい型を作成するので、structキーワードを使用して変数を作成することは純粋にオプションです。 –

+1

@rubixibuc - 適切な 'C++'タグが追加されました。 – Mahesh

答えて

3

structが必要とされていないと言って。 C++では、structclassの唯一の違いは、structのメンバーはデフォルトでpublicで、classのメンバーはデフォルトでprivateです。

3

:-)

おかげではありません、structキーワードは必要ありません。ところで、構造体の定義は、;の末尾にある必要があります。

1

Cでは、typedefを使用することで回避できます。 C++では、型が自動的に作成されるため、型を明示的に記述する必要はありません。

C構文それが似て作るために:

typedef struct { 
.... 
} foo; 

は、その後、あなたがそれを使用することができますfoo x;

2

できますが、する必要はありません。なぜなら、あなたのコードを純粋なCと混ぜるつもりがなければ、それは適切なC++スタイルだからです。その理由は、C++のデザイナーはCのタグの概念が不必要に複雑であると考えていたからです。私は同意する傾向があります。