ctor38.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 92 行
C
92 行
#include "fail.h"
int p;
struct O {
int s;
O();
~O();
O( O const & );
};
struct V : O {
int s;
O o;
V();
V( V const & );
~V();
};
struct DV : virtual V, O {
int s;
O o;
DV();
DV( DV const & );
~DV();
};
struct U3 : DV, O {
O q;
DV u;
};
struct DU3 : U3, O {
int s;
U3 a;
O z;
DU3();
~DU3();
};
O::~O() {
if( p > 0 ) {
--p;
if( s != p ) _fail;
} else {
_fail;
}
}
V::~V() {
if( p > 0 ) {
--p;
if( s != p ) _fail;
} else {
_fail;
}
}
DV::~DV() {
if( p > 0 ) {
--p;
if( s != p ) _fail;
} else {
_fail;
}
}
DU3::~DU3() {
if( p > 0 ) {
--p;
if( s != p ) _fail;
} else {
_fail;
}
}
O::O() {
s = p++;
}
V::V() {
s = p++;
}
DV::DV() {
s = p++;
}
DU3::DU3() {
s = p++;
}
int main() {
{
DU3 x;
}
if( p != 0 ) _fail;
_PASS;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?