C++ では公開範囲が翻訳単位の内と外という二択しかなく階層はない。
C から引き継いだ通りなのである意味では単純極まりない。