[迷信] 構造体はクラスではない

C++における構造体とクラスは似て非なるものと考える人は少なくありません。確かに構造体とクラスは同義ではありませんが、構造体がクラスではないかというとそれも違います。C++では、構造体は一種のクラスです。JIS X3014:2003の9. クラスから引用すると...

構造体は,《クラスキー》structを付けて定義するクラスとする。そのメンバ及び基底クラスは,特に指定がない限り公開となる。共用体は,《クラスキー》unionを付けて定義するクラスとする。そのメンバは,特に指定がない限り公開となり,一度に一つのデータメンバだけを保持する。

となっています。つまり、クラスキーが struct なのか,union なのか,class なのかによって呼び方が変わるだけで、構造体も共用体もクラスであることには変わりがありません。なお、クラスキーが class の場合の特別な呼び方はありません。

この記事のトラックバックURL:

http://www.kijineko.co.jp/trackback/596
このエントリーを含むはてなブックマーク