34 lines
373 B
C++
34 lines
373 B
C++
struct Char {
|
|
char c;
|
|
Char(char c):c(c){}
|
|
};
|
|
|
|
struct Int {
|
|
int i;
|
|
operator int& ();
|
|
Int(int i):i(i){}
|
|
};
|
|
|
|
Int::operator int&() {return i;}
|
|
|
|
int main()
|
|
{
|
|
Int I1(1);
|
|
int i1 = int(I1);
|
|
assert(i1==1);
|
|
|
|
|
|
Int I2(2);
|
|
int i2 = (int&)I2;
|
|
assert(i2==2);
|
|
|
|
|
|
Int I3(3);
|
|
int i3 =0;
|
|
i3 = I3;
|
|
assert(i3==3);
|
|
|
|
Char C3(I3);
|
|
assert(C3.c==3);
|
|
}
|