dtor17.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 47 行
C
47 行
#include "fail.h"
int count;
struct S {
int s;
S(int);
S(S const &);
~S();
};
S::S( int x ) : s(x) {
++count;
}
S::S( S const &r ) : s(r.s) {
++count;
}
S::~S() {
--count;
if( count < 0 ) fail(__LINE__);
}
void foo()
{
// only the static foo's S should stay constructed
static S foo( S(1) );
}
int main()
{
foo();
if( count != 1 ) fail(__LINE__);
foo();
if( count != 1 ) fail(__LINE__);
foo();
if( count != 1 ) fail(__LINE__);
foo();
if( count != 1 ) fail(__LINE__);
foo();
if( count != 1 ) fail(__LINE__);
foo();
if( count != 1 ) fail(__LINE__);
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?