#include <iostream>
using namespace std;
class A{
char m_byteValue;
public:
A(unsigned char c) {
m_byteValue = c;
}
};
class B{
int m_a;
public:
B(){
m_a = 2;
}
int Set(B *);
int Set(const A&);
};
int B::Set(const A& v) {
cout << "I am in the const ref function\n";
return 0;
}
int B::Set(B* p) {
cout << "I am in the pointer function\n";
return 0;
}
int main(){
const unsigned char a = 0;
const unsigned char b = 1;
unsigned char c = 0;
unsigned char d = 1;
B var;
var.Set(a);
var.Set(b);
var.Set(c);
var.Set(d);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgpjbGFzcyBBewogIGNoYXIgbV9ieXRlVmFsdWU7CnB1YmxpYzoKICBBKHVuc2lnbmVkIGNoYXIgYykgewogICAgbV9ieXRlVmFsdWUgPSBjOwogIH0KfTsKCgpjbGFzcyBCewogIGludCBtX2E7CnB1YmxpYzoKICBCKCl7CiAgICBtX2EgPSAyOwogIH0KICBpbnQgU2V0KEIgKik7CiAgaW50IFNldChjb25zdCBBJik7Cn07CgppbnQgQjo6U2V0KGNvbnN0IEEmIHYpIHsKICBjb3V0IDw8ICJJIGFtIGluIHRoZSBjb25zdCByZWYgZnVuY3Rpb25cbiI7CiAgcmV0dXJuIDA7Cn0KCmludCBCOjpTZXQoQiogcCkgewogIGNvdXQgPDwgIkkgYW0gaW4gdGhlIHBvaW50ZXIgZnVuY3Rpb25cbiI7CiAgcmV0dXJuIDA7Cn0KCmludCBtYWluKCl7CiAgY29uc3QgdW5zaWduZWQgY2hhciBhID0gMDsKICBjb25zdCB1bnNpZ25lZCBjaGFyIGIgPSAxOwogIHVuc2lnbmVkIGNoYXIgYyA9IDA7CiAgdW5zaWduZWQgY2hhciBkID0gMTsKICBCIHZhcjsKICB2YXIuU2V0KGEpOwogIHZhci5TZXQoYik7CiAgdmFyLlNldChjKTsKICB2YXIuU2V0KGQpOwogIHJldHVybiAwOwp9