Mam dwie klasy:Dlaczego operator typecasting nie działa z odziedziczoną klasą?
struct B {};
struct D {
operator B&();
};
Kiedy zrobić;
b = d; // B b; ... D d;
Wynik jest jak na oczekiwanie gdzie D::operator B&()
jest wywoływany (Demo).
Jeśli D
zmienia się na,
struct D : B {
operator B&();
};
następnie D::operator B&()
nie jest wywoływany (Demo). Czy B::B(const B&)
znajduje lepszego kandydata pod numerem D
, a następnie D::operator B&()
?