#include <iostream>
class Derived;
class Base {
public:
void func();
void func(Derived);
};
class Derived : public Base {
public:
void func();
};
void
Base::func(Derived D) {
std::cout << "called\n";
}
int main () {
Base b;
Derived d;
b.func(d);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCmNsYXNzIERlcml2ZWQ7CiAKY2xhc3MgQmFzZSB7CiAgICBwdWJsaWM6CiAgICAgICAgdm9pZCBmdW5jKCk7CiAgICAgICAgdm9pZCBmdW5jKERlcml2ZWQpOwp9OwogCmNsYXNzIERlcml2ZWQgOiBwdWJsaWMgQmFzZSB7CiAgICBwdWJsaWM6CiAgICAgICAgdm9pZCBmdW5jKCk7Cn07CiAKdm9pZCAKQmFzZTo6ZnVuYyhEZXJpdmVkIEQpIHsKICBzdGQ6OmNvdXQgPDwgImNhbGxlZFxuIjsKfQogCmludCBtYWluICgpIHsKICBCYXNlIGI7CiAgRGVyaXZlZCBkOwogIGIuZnVuYyhkKTsKfQ==