1. 全メンバがpublicのとき イ) struct X { int member; }; ロ) class X { public: int member; };
2. 一部メンバがpublic、その他はprivateのとき イ) struct { int pub_mem; private: int pri_mem; }; ロ) class { public: int pub_mem; private: int pri_mem; }; ハ) class { int pri_mem; public: int pub_mem; }; 大学の研究室向けコーディング規約を見直しているところで、 そこそこC++コード書いてる他の人はどうか知りたいのです。
News 2005-10-24: C++ Standard Core Language Issues List (Revision 38) is available News 2005-10-24: The C++ Standard Library Issues List (Revision 39) is available
> Cの時代に遡る理由から、同じスコープに同じ名前のstructと非構造体を宣言することは可能になっている。 > たとえば、次の通り。 > > struct stat { /* ... */ }; > int stat(char* name, struct stat* buf);
そして、規格書3.4 Name lookupの3:
> Because the name of a class is inserted in its class scope (clause 9), the name of a class is also > considered a member of that class for the purposes of name hiding and lookup.