>とりあえずこいつをコンパイルできる状態で晒せ。
今手元にコンパイルできる環境がないのでソースは晒せません。
申し訳ないです。要はset()関数を呼ぶクラスに対してfriend宣言してるだけです。

>あと、どうすればお前が「すっきり」するのかも明記しる。
いくつかのクラスで共有したいデータがあって、そのデータを管理するクラスを作りました。
そのクラスを使って外にデータを公開したいのですが
単純にis()とかset()とか作るだけでは、ライトを許可したくない
クラスからもライトされる可能性があるので、それを禁止するような作りにしたいのです。
friendを使いたくないのは、ライトするクラスが変わったりすると修正が必要だし
公開したくないメンバまで公開してしまうのに抵抗があり、すっきりしないのです。