uc1.c

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 67 行

C
67
字号
struct V {
    operator int();
    int v;
};

struct A : virtual V {
    operator int();
    int a;
};

struct B : V {
    operator double();
    int b;
};

struct E {
    operator int();
};

struct C : virtual V, public E {
    operator char *();
    int c;
};

struct D : A, B, C {
    operator int();
    int foo( void );
};

D x;

// D	- A	* V
//	- B	- V
//	- C	- E
//		* V

// V, A, E, D all have operator int() but D's overrides them all

int D::foo( void )
{
    return operator int();
}

struct P {
    operator char *();
};

int y;

void foo( P p )
{
    if( p ) {		// should convert to "char *"
	++y;
    }
}

struct I {
    operator int();
};

void bar( I p )
{
    if( p ) {		// should convert to "int"
	++y;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?