>>789

A &getA(){
static A a;
return a;
}

B &getB(){
static B b;
return b;
}

int main() {
Character Tom( &getA() ), Jerry( &getB() ) ;
Tom.f() ;
Jerry.f() ;
}


とかすればいいんじゃないの?