diag0154.c

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

C
241
字号
struct XX {
    void virtual foo();
    void virtual bar();
};

struct OK0 : XX {
};

struct A {
    virtual void f1( );
    virtual void f2( int ) = 0;
    virtual void f3( int,int ) = 0;
    virtual void f4( int );
    void virtual f5( int,int ) = 0;
    virtual void f6( );
};

struct A1 : virtual A {
    virtual void f3( int,int );
};

struct A2 : virtual A {
    virtual void f2( int );
    void virtual f5( int,int );
};

struct OK1 : A1, A2 {
};

struct B1 : virtual A {
    virtual void f2( int ) = 0;
    virtual void f3( int,int );
    void virtual f5( int,int ) = 0;
};

struct B2 : virtual A {
    virtual void f2( int );
    virtual void f3( int,int ) = 0;
    void virtual f5( int,int );
};

struct BAD1 : B1, B2 {
};

struct BAD2 : BAD1 {
};

struct OK2 : A {
    virtual void f1( );
    virtual void f2( int );
    virtual void f3( int,int );
    virtual void f4( int );
    void virtual f5( int,int );
    virtual void f6( );
};

struct OK3 : A {
    virtual void f2( int );
    virtual void f3( int,int );
    virtual void f4( int );
    void virtual f5( int,int );
    virtual void f6( );
};

struct BAD3 : A {
    virtual void f1( );
    virtual void f3( int,int );
    virtual void f4( int );
    void virtual f5( int,int );
    virtual void f6( );
};

struct BAD4 : A {
    virtual void f1( );
    virtual void f2( int );
    virtual void f4( int );
    void virtual f5( int,int );
    virtual void f6( );
};

struct OK4 : A {
    virtual void f1( );
    virtual void f2( int );
    virtual void f3( int,int );
    void virtual f5( int,int );
    virtual void f6( );
};

struct BAD5 : A {
    virtual void f1( );
    virtual void f2( int );
    virtual void f3( int,int );
    virtual void f4( int );
    virtual void f6( );
};

struct OK5 : A {
    virtual void f1( );
    virtual void f2( int );
    virtual void f3( int,int );
    virtual void f4( int );
    void virtual f5( int,int );
};

struct BAD6 : A {
    virtual void f1( );
    virtual void f2( int ) = 0;
    virtual void f3( int,int ) = 0;
    virtual void f4( int );
    void virtual f5( int,int ) = 0;
    virtual void f6( );
};

struct BAD7 : A {
    virtual void f1( );
    virtual void f2( int ) = 0;
    virtual void f3( int,int ) = 0;
    virtual void f4( int );
    void virtual f5( int,int ) = 0;
    virtual void f6( );
};

struct BAD8 : BAD6, BAD7 {
};

struct BAD9 : virtual A {
    virtual void f1( );
    virtual void f2( int ) = 0;
    virtual void f3( int,int ) = 0;
    virtual void f4( int );
    void virtual f5( int,int ) = 0;
    virtual void f6( );
};

struct BAD10 : virtual A {
    virtual void f1( );
    virtual void f2( int ) = 0;
    virtual void f3( int,int ) = 0;
    virtual void f4( int );
    void virtual f5( int,int ) = 0;
    virtual void f6( );
};

struct BAD11 : BAD9, BAD10 {
};

struct BAD12 : A {
    // all brand new virtual functions
    virtual void f1( char );
    virtual void f2( char,int );
    virtual void f3( char,int,int );
    virtual void f4( char,int );
    void virtual f5( char,int,int );
    virtual void f6( char );
};

struct BAD13 {
    virtual int foo() = 0;
};

struct BAD14 : BAD13 {
    virtual int foo() const;
};

struct BAD15 {
    virtual int foo( int const & ) = 0;
};

struct BAD16 : BAD15 {
    virtual int foo( int & );
};

OK0 x39;
OK1 x40;
BAD1 x41;
OK2 x42;
OK3 x43;
BAD2 x44a;
BAD3 x44;
BAD4 x45;
OK4 x46;
BAD5 x47;
OK5 x48;
BAD6 x49;
BAD7 x50;
BAD8 x51;
BAD9 x52;
BAD10 x53;
BAD11 x54;
BAD12 x54;
BAD13 x55;
BAD14 x56;
BAD15 x57;
BAD16 x58;

OK0 y39;
OK1 y40;
BAD1 y41;
OK2 y42;
OK3 y43;
BAD2 y44a;
BAD3 y44;
BAD4 y45;
OK4 y46;
BAD5 y47;
OK5 y48;
BAD6 y49;
BAD7 y50;
BAD8 y51;
BAD9 y52;
BAD10 y53;
BAD11 y54;
BAD12 y55;
BAD13 y55;
BAD14 y56;
BAD15 y57;
BAD16 y58;

OK0 w39[2];
OK1 w40[2];
BAD1 w41[2];
OK2 w42[2];
OK3 w43[2];
BAD2 w44a[2];
BAD3 w44[2];
BAD4 w45[2];
OK4 w46[2];
BAD5 w47[2];
OK5 w48[2];
BAD6 w49[2];
BAD7 w50[2];
BAD8 w51[2];
BAD9 w52[2];
BAD10 w53[2];
BAD11 w54[2];
BAD12 w55[2];
BAD13 w55[2];
BAD14 w56[2];
BAD15 w57[2];
BAD16 w58[2];

⌨️ 快捷键说明

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