quest04.c

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

C
36
字号
#include "fail.h"

struct Test {
    Test(unsigned val) : value(val) {
	printf( "Test(%p,%u)\n", this, value );
	if( value > 2 ) _fail;
    }
    Test(const Test& other) {
	value = other.value;
	if( value > 2 ) _fail;
	printf( "Test(%p,%p,%u)\n", this, &other, value );
    }
    ~Test() {
	if( value > 2 ) _fail;
	printf( "~Test(%p,%u)\n", this, value );
    }
    unsigned value;
};

void zap() {
    char buff[100];
    memset( buff, -3, sizeof(buff) );
}
void foo( int b ) {
    Test a(1);
    Test const & test = b ? a : Test(2);
}
 
int main() {
    zap();
    foo( 0 );
    zap();
    foo( 1 );
    _PASS;
}

⌨️ 快捷键说明

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