opeq14.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 51 行
C
51 行
#include "fail.h"
unsigned a_called;
unsigned b_called;
struct A {
int &r;
A( int * );
A & operator =( A const &s );
};
struct B {
int r;
B & operator =( B const &s );
B( int v ) : r(v) {
}
};
struct C {
A a;
B b;
C( int *p ) : a(p), b(0) {
}
};
void foo( C x, C y )
{
x = y;
y = x;
}
A::A( int *p ) : r(*p)
{
}
A & A::operator =( A const &s ) {
++a_called;
return *this;
}
B & B::operator =( B const &s ) {
++b_called;
return *this;
}
int main()
{
int z = 3;
C x( &z );
C y( &z );
foo( x, y );
if( a_called != 2 || b_called != 2 ) _fail;
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?