「設定データを管理するクラスのインスタンス」が絶対に1つしか存在しないのか、それとも複数存在する可能性があるのかで、話の内容が2分されるだろ。なぜ最初にそれを問わないんだ?
1つしか存在しないのであれば static でもシングルトン、
複数存在するのであれば、C のインスタンスを作成→ポインタなりを A と B のインスタンスに渡すか、A と B のメンバ関数の呼び出しの際に、引数として C のインスタンスを渡すだけだろ