vf12.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 44 行
C
44 行
#include "fail.h"
struct S1 {
int v;
virtual operator int() {
return v + 1;
}
S1( int v ) : v(v) {
}
};
struct S2 : S1 {
virtual operator long()
{
return v - 1;
}
S2( int v ) : S1(v) {
}
};
struct S3 : S2 {
operator int() {
return v + 2;
}
virtual operator long()
{
return v - 2;
}
S3( int v ) : S2(v) {
}
};
int main()
{
S2 *p = new S3(3);
S1 *q = p;
if( int(*q) != 5 ) fail(__LINE__);
if( long(*q) != 5 ) fail(__LINE__);
if( int(*p) != 5 ) fail(__LINE__);
if( long(*p) != 1 ) fail(__LINE__);
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?