クラスの型を自動変換して関数に入れるにはどうすればいいですか?例えば、

class A {
public:
double hoge;
};
class B {
public:
int hogehoge;
};

int function(A aaa);

があった時に、functionにB型を入れても動くようにしたいです。
クラスAのソースに、Bから生成するコンストラクタ書ければいいのかもしれませんが、
実際はAはライブラリのクラスで触れなくて、Bが自作のクラスになります。