dtor14.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 49 行
C
49 行
#include "fail.h"
int v = -1000 - 10;
unsigned ctors;
unsigned dtors;
struct A {
A( int n = 10, int k = ( v += 10 ) ) {
++ctors;
_p = new int[n];
for( int i = 0; i < n; ++i ) {
_p[i] = k++;
}
}
~A() { ++dtors; delete [] _p; }
int *_p;
};
struct S {
S();
~S();
A _a[10];
};
S::S() {
}
S::~S() {
}
int main()
{
{
S v;
int c = -1000;
if( ctors != 10 ) fail(__LINE__);
for( int i = 0; i < 10; ++i ) {
for( int j = 0; j < 10; ++j ) {
if( v._a[i]._p[j] != c ) fail(__LINE__);
++c;
}
}
}
if( dtors != 10 ) fail(__LINE__);
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?