C++ の struct はデフォルトで public 継承
って、案外知られてないみたいですね。
どういうことかと言うと、
#include <iostream> int main() { class hoge { public: void f() { std::cout << "hoge" << std::endl; } }; // class ex_hoge : hoge {};だと、eh.f()でエラー struct ex_hoge : hoge {}; ex_hoge eh; eh.f(); }
これがコンパイルできる、ということです。
まぁ、あまり知られていないと言うことで、
struct ex_hoge : public hoge {};
としとくのが無難なのかも。