Я озадачен этим поведением С++:
struct A {
virtual void print() const { printf("a\n"); }
};
struct B : public A {
virtual void print() const { printf("b\n"); }
};
struct C {
operator B() { return B(); }
};
void print(const A& a) {
a.print();
}
int main() {
C c;
print(c);
}
Итак, опрос - это то, что является выходом программы - a или b? Ну, ответ: a. Но почему?