|
#include "stdafx.h"
#include "smartptr.h"
using namespace idllib;
class CMyObject {
char *name;
public:
CMyObject(char *aname)
{
name = aname;
printf("create %s\n",name);
}
virtual ~CMyObject()
{
printf("delete %s\n",name);
}
void print()
{
printf("print %s\n",name);
}
};
SmartPtr<CMyObject> f1(char *name)
{
return SmartPtr<CMyObject>(new CMyObject(name));
}
void f2(CMyObject *o)
{
printf("(print from a function) ");
o->print();
}
int main(int argc, char* argv[])
{
SmartPtr<CMyObject> ptr1(new CMyObject("1"));
SmartPtr<CMyObject> ptr2 = new CMyObject("2");
ptr1->print();
ptr2->print();
ptr1 = ptr2;
ptr1->print();
ptr2->print();
ptr2 = f1("f1");
ptr2->print();
f1("f2");
ptr2 = NULL;
f2(ptr1);
return 0;
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.