1 // Build don't link:
2
3 #include <new>
4
5 inline void *
new(size_t alloc_sz,const char * fname,unsigned lineno)6 operator new(size_t alloc_sz, const char *fname, unsigned lineno)
7 {
8 return ::operator new (alloc_sz);
9 }
10 inline void *
11 operator new[](size_t alloc_sz, const char *fname, unsigned lineno)
12 {
13 return ::operator new[] (alloc_sz);
14 }
15 inline void
delete(void * ptr,const char * fname,unsigned lineno)16 operator delete(void *ptr, const char *fname, unsigned lineno)
17 {
18 }
19 inline void
20 operator delete[](void *ptr, const char *fname, unsigned lineno)
21 {
22 }
23
24 class DEF {
25 public:
26 DEF( DEF *parent=0, const char *name=0 );
27 };
28
29 class ABC
30 {
31 public:
32 enum stuff { ID0, ID1 };
33 ABC( stuff, DEF *parent=0, const char *name=0 );
34 };
35
36 class GHI : public DEF
37 {
38 };
39
40 class LMNFrame;
41 class LMN : public DEF
42 {
43 friend class LMNFrame;
44 public:
45 public:
46 LMN();
47 private:
48 LMNFrame *draw_area;
49
50 ABC *scroll_h;
51 };
52 class LMNFrame : public GHI {
53 };
LMN()54 LMN::LMN()
55 {
56 draw_area = new ("abc", 69) LMNFrame;
57
58 scroll_h = new ("def", 71) ABC(ABC::ID0, this);
59 }
60
61