拡張メンバ関数を導入するべきだ

.h
class hoge { int x; public: int y; void print_xy(); };

.cpp
namespace {
inline private void hoge::print_x() { cout << x << endl; } // privateならprivateに触れる。ただしprivateの拡張メンバか非拡張のメンバからしか呼べない
inline public void hoge::print_y() { cout << y << endl; } // publicならpublicにしか触れない、どこからでも呼べる
}
void hoge::print_xy() { print_x(); print_y(); }

こんな感じで
仕様変えたい時にメンバ増やしてもコンパイル依存性は変わらないから便利だろ
ヘッダもすっきりするしな