?? cdtest-foo.cc
字號:
// Class Foo#pragma implementation// We don't use header files, since we only want to see, whether the// compiler is installed properly.//#if (__GNUG__ == 2)typedef __SIZE_TYPE__ size_t;#elsetypedef unsigned int size_t;#endifextern "C" { char *strncpy (char* dest, const char* dest, size_t len); int printf (const char*, ...);};#include "cdtest-foo.h"int Foo::foos = 0;void Foo::init_foo (){ printf ("BROKENLY calling Foo::init_foo from __init_start; size_of(Foo) = %d\n", sizeof(Foo)); foos = FOOLISH_NUMBER;}Foo::Foo (){ i = ++foos; strncpy (message, "default-foo", len);#ifdef WITH_ADDR printf ("Constructing Foo(%d) \"default-foo\" at %08x\n", i, this);#else printf ("Constructing Foo(%d) \"default-foo\"\n", i);#endif}Foo::Foo (char* msg){ i = ++foos; strncpy( message, msg, len);#ifdef WITH_ADDR printf ( "Constructing Foo(%d) \"%s\" at %08x\n", i, message, this);#else printf ( "Constructing Foo(%d) \"%s\"\n", i, message);#endif}Foo::Foo (const Foo& foo){ i = ++foos;#ifdef WITH_ADDR printf ("Initializing Foo(%d) \"%s\" at %08x with Foo(%d) %08x\n", i, foo.message, this, foo.i, &foo);#else printf ("Initializing Foo(%d) \"%s\" with Foo(%d)\n",i, foo.message, foo.i);#endif for ( int k = 0; k < FOO_MSG_LEN; k++) message[k] = foo.message[k];}Foo& Foo::operator= (const Foo& foo){#ifdef WITH_ADDR printf ("Copying Foo(%d) \"%s\" at %08x to Foo(%d) %08x\n", foo.i, foo.message, &foo, i, this);#else printf ("Copying Foo(%d) \"%s\" to Foo(%d)\n", foo.i, foo.message, i);#endif for ( int k = 0; k < FOO_MSG_LEN; k++) message[k] = foo.message[k]; return *this;}Foo::~Foo (){ foos--;#ifdef WITH_ADDR printf ("Destructing Foo(%d) \"%s\" at %08x (remaining foos: %d)\n", i, message, this, foos);#else printf ("Destructing Foo(%d) \"%s\" (remaining foos: %d)\n", i, message, foos);#endif}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -