2 #include "xplc/utils.h"
8 class MyObject
: public IObject
10 IMPLEMENT_IOBJECT(MyObject
);
12 MyObject() { nobjs
++; }
13 virtual ~MyObject() { nobjs
--; }
17 UUID_MAP_BEGIN(MyObject
)
18 UUID_MAP_ENTRY(IObject
)
25 IObject
*a
= new MyObject
;
32 xplc_ptr
<IObject
> a(new MyObject
);
38 xplc_ptr
<IObject
> a(new MyObject
);
45 xplc_ptr
<IObject
> a(new MyObject
);
46 IObject
*stupid
= a
->getInterface(IObject_IID
);
55 xplc_ptr
<IObject
> a(new MyObject
);
56 IObject
*stupid
= a
->getInterface(IObject_IID
);
62 assert(!nobjs
); // assertion fails
67 xplc_ptr
<IObject
> a(new MyObject
);
69 b
= a
; // doesn't compile: "operator= is private"
77 xplc_ptr
<IObject
> a(new MyObject
);
78 xplc_ptr
<IObject
> b(a
);
84 printf("all tests passed.\n");