#include <iostream>
using namespace std;
struct Punto
{
double x;
double y;
};
class Circulo
{
public:
void centro( const Punto&);
void centro( Punto&) const;
private:
Punto centro_;
};
void Circulo::centro( const Punto& pto)
{
centro_ = pto;
cout << "void centro( const Punto&)" << endl;
}
void Circulo::centro( Punto& pto) const
{
pto = centro_;
cout << "void centro( Punto&) const" << endl;
}
int main()
{
Circulo circ;
Punto pto;
pto.x = 10;
pto.y = 10;
circ.centro( static_cast<const Punto&>(pto));
(circ.*static_cast<void (Circulo::*)(Punto&) const>(&Circulo::centro))( pto);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFB1bnRvCnsKCWRvdWJsZSB4OwoJZG91YmxlIHk7Cn07CgpjbGFzcyBDaXJjdWxvIAp7CglwdWJsaWM6CgkJdm9pZCBjZW50cm8oIGNvbnN0IFB1bnRvJik7CgkJdm9pZCBjZW50cm8oIFB1bnRvJikgY29uc3Q7CgkKCXByaXZhdGU6CgkJUHVudG8gY2VudHJvXzsKfTsKCnZvaWQgQ2lyY3Vsbzo6Y2VudHJvKCBjb25zdCBQdW50byYgcHRvKQp7CgljZW50cm9fID0gcHRvOwoJY291dCA8PCAidm9pZCBjZW50cm8oIGNvbnN0IFB1bnRvJikiIDw8IGVuZGw7Cn0KCnZvaWQgQ2lyY3Vsbzo6Y2VudHJvKCBQdW50byYgcHRvKSBjb25zdAp7CglwdG8gPSBjZW50cm9fOwoJY291dCA8PCAidm9pZCBjZW50cm8oIFB1bnRvJikgY29uc3QiIDw8IGVuZGw7Cn0KCgppbnQgbWFpbigpIAp7CglDaXJjdWxvIGNpcmM7CglQdW50byBwdG87CglwdG8ueCA9IDEwOwoJcHRvLnkgPSAxMDsKCQoJY2lyYy5jZW50cm8oIHN0YXRpY19jYXN0PGNvbnN0IFB1bnRvJj4ocHRvKSk7CgkoY2lyYy4qc3RhdGljX2Nhc3Q8dm9pZCAoQ2lyY3Vsbzo6KikoUHVudG8mKSBjb25zdD4oJkNpcmN1bG86OmNlbnRybykpKCBwdG8pOwoKCXJldHVybiAwOwp9