>>270
struct B と C のどっちのfuncを呼んだのだろう?と思って
舌のようなコードにしたら、Bが呼ばれてた。

struct B
{
 friend void func(A& a)
 {
  printf("struct B\n");
 }
};

struct C
{
 friend void func(A& a)
 {
  printf("struct C\n");
 }
};

…Cのほうは?