5
Tôi có hai lớp:Tại sao toán tử typecasting không hoạt động với lớp kế thừa?
struct B {};
struct D {
operator B&();
};
Khi tôi làm;
b = d; // B b; ... D d;
Kết quả là theo kỳ vọng nơi D::operator B&()
được gọi (Demo).
Nếu D
được thay đổi để,
struct D : B {
operator B&();
};
sau đó D::operator B&()
không gọi (Demo). Có phải B::B(const B&)
đang tìm một ứng cử viên tốt hơn trong D
sau đó D::operator B&()
?