ここで返したいのはprivateのBだよね?
B Get() {return b;}
これだとここでコピーが行われて新しくメモリ作られるよ

ポインタで返すようにして
B* Get() { return &b; }
こうやってポインタで受け取るべき
B* b = a->Get();