ctordtor.cpp

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

CPP
101
字号
#include <stdio.h>

struct Msg
{
private:
    int class_no;
    static int next_class_no;
public:
    void msg( char * );
    Msg();
};
static int Msg::next_class_no = 0;

Msg::Msg() : class_no( next_class_no )
{
    ++ next_class_no;
}

void Msg::msg(                  // PRINT MESSAGE
    char *text )                // - text
{
    printf( "%3d -- %s\n", class_no, text );
#if __WATCOM_REVISION__ < 8
    fflush( stdout );
#endif
}


struct NullClass : virtual Msg  // CLASS WITH NO DATA
{
    NullClass();
    ~NullClass();
};

NullClass::NullClass()          // CTOR
{
    this->msg( "NullClass CTOR" );
}

NullClass::~NullClass()         // DTOR
{
    this->msg( "NullClass DTOR" );
}


struct ElemClass : virtual Msg  // CLASS WITH DATA
{
private:
    int value;
public:
    ElemClass();
    ~ElemClass();
};

ElemClass::ElemClass()          // CTOR
{
    this->msg( "ElemClass CTOR" );
}

ElemClass::~ElemClass()         // DTOR
{
    this->msg( "ElemClass DTOR" );
}


struct ArrayClass : virtual Msg // CLASS WITH ARRAYS
{
private:
    NullClass na[5];
    ElemClass ea[3][2];
public:
    ArrayClass();
    ~ArrayClass();
};


ArrayClass::ArrayClass()        // CTOR
{
    this->msg( "ArrayClass CTOR" );
}

ArrayClass::~ArrayClass()       // DTOR
{
    this->msg( "ArrayClass DTOR" );
}


ArrayClass pub;

void foo( void )
{
    static ArrayClass stat;
}

int main( void )
{
    ArrayClass aut;
    foo();
    return 0;
}

⌨️ 快捷键说明

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