diag0222.c

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

C
49
字号
// BADREF.C -- TEST ILLEGAL REFERENCE EXPRESSIONS
//
// 91/10/30     -- Ian McHardy          -- defined

class BASE
{
    public:
    int a;
};

class INHERIT:BASE
{
    public:
    int b;
};

void fbr(                       // FUNCTION WITH REF TO BASE PARAMETER
    BASE& br )
{
    br = br;
}

void fir(                       // FUNCTION WITH REF TO INHERIT PARAMETER
    INHERIT& ir )
{
    ir = ir;
}



void main( void )
{
    BASE b;
    INHERIT i;

    BASE& br;
    INHERIT& ir;

    INHERIT& ir2 = b;		// ERROR
    void& bad_ref_void;         // ERROR

    br = i;                     // ERROR: BASE is a private base of INHERIT
    ir = i;                     // OK

    fir( br );                  // ERROR
    fir( b );                   // ERROR
    ir = b;                     // ERROR
}

⌨️ 快捷键说明

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