diag0067.c

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

C
65
字号
typedef unsigned size_t;
struct S {
    struct T {
	T();
	void * operator new ( size_t );
	void operator delete( void * );
    private:
	~T();
    };
    struct N {
	N();
	void * operator new ( size_t );
    private:
	~N();
    };
    S();
    void * operator new ( size_t );
    void operator delete ( void * );
private:
    ~S();
};

void foo( int x )
{
    S *s;
    S::T *t;
    S::N *n;

    s = new S;
    delete s;
    s = new S[x];
    delete [] s;
    t = new S::T;
    delete t;
    t = new S::T[x];
    delete [] t;
    n = new S::N;
    delete n;
    n = new S::N[x];
    delete [] n;
}

class C1 {
    friend void foo( void );
    void operator delete( void *, size_t );
};

class C2 : C1 {
    friend void foo( void );
    C2();
    ~C2();
    int a[10];
};

C2::~C2()
{
}

C2 *p;

void foo( void )
{
    delete p;
}

⌨️ 快捷键说明

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