- 313 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 15:00:21 ]
- すみません、考え方の整理をしたいので質問させて下さい。
自分は普段、Java と C# をメインに開発している者なのですが、趣味の範囲で C/C++ を真面目に 使いたいと思い、ここしばらくずっと勉強を続けています。 質問内容は、「C++ で言うクラス"名" は、C で言う構造体のタグ名と同じ捉え方でいいのか」 です。 具体的に言うと、C(/C++) の構造体について、現在自分はこのように捉えています。 struct { 内容 } 変数名A, 変数名B; は、その内容を構造として持った複合体のような変数として、宣言している。ちょうど、 int 変数名A, 変数名B; での、型名 int の部分が、{ 内容 } の形で表現されているような状態。 そして実際の記法としては、それが構造体の宣言である事を明示するため、struct と最初に書いてコンパイラに伝えている。 さらに、あとでこの同じ構造を再度利用したい(新しい変数を使いたい)場合に備え、 ここに一発で同じ内容を示す為の 「タグ名」 を、書くことも出来る。 そしてそれは、 struct タグ名 { 内容 } 変数名A, 変数名B; と、ある時、 struct タグ名 変数名C; のようにして簡易に使うことが出来る。 で、C++ になってからこの再度宣言する際の struct の一文は省略できるようになったので、 まるで Java や C# で言うクラス名のように見えているけど、 実はこれは元々再呼び出しの為の、タグ名だった。 そして、C++ になって今度はより仕掛けの拡張された class が登場したが、この時の class 名前 { 内容 } 変数名; にある "名前" の部分は、上記理解中にあるタグ名と同様に捉えておいていいんでしょうか、という事です。 よろしくお願いいたします。
|

|