У меня есть два класса:
struct B {};
struct D {
operator B& ();
};
Когда я это сделаю;
b = d; // B b; ... D d;
Результат соответствует ожиданиям, когда вызывается D::operator B&()
( Демо ).
Если D
изменяется на
struct D : B {
operator B& ();
};
, то D::operator B&()
не вызывается ( Demo ).B::B(const B&)
находит лучшего кандидата в D
, чем D::operator B&()
?