具体的な例で話をすると
・キーボードからの入力を監視するクラス
・入力されたデータを管理/保持するクラス(インスタンスは1つとする)
・そのデータを表示するクラス
みたいな物を作りたいとします。

問題はデータを管理するクラスの設計で
setterをコールできるクラスを制限したいのですが・・・
setするクラスを別に定義するのが普通なのかなぁ。

↓晒せと言われたので一応(擬似)ソースです。長くてすんません。

#include <iostream>
using namespace std;

//----- dat.h -----
class Dat
{
public:
char is(){return(key);}
void set(char c){key=c;}
private:
char key;
};
extern Dat DAT;