quello che normalmente fare in questo caso è dare B
un costruttore che prende un A
:
class B
{
public:
B(const A&);
};
e fare la conversione di lì. Il compilatore dirà "Come posso fare A
a B
? Oh, vedo che lo B
può essere costruito da un A
".
Un altro metodo è quello di utilizzare un operatore di conversione:
class A
{
public:
operator B(void) const;
}
e il compilatore dirà "Come posso fare A
un B
Oh, capisco A
possono essere convertiti in B
?".
Tenere presente che questi sono molto facili da abusare. Assicurati che abbia davvero senso che questi due tipi si convertano implicitamente l'uno nell'altro.
Se non è possibile modificare le definizioni di classe per la classe A o la classe B, non esiste un modo valido per farlo. – Omnifarious