opeq07.c

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

C
51
字号
#include "fail.h"

struct V {
    V & operator =( const V &src );
};

struct R : virtual V {
    int r;
};

struct S : virtual V {
    int s;
};

struct T : R, S {
    int t;
};

unsigned assignments;

V & V::operator =( const V &src ) {
    ++assignments;
    return *this;
}

void assign_R( R &s, R &d )
{
    s = d;
}

void assign_S( S &s, S &d )
{
    s = d;
}

void assign_T( T &s, T &d )
{
    s = d;
}
    
T t;

int main()
{
    assign_R( t,t );
    assign_S( t,t );
    assign_T( t,t );
    if( assignments != 3 ) fail(__LINE__);
    _PASS;
}

⌨️ 快捷键说明

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