Click here to Skip to main content
11,496,146 members (1,110 online)
Click here to Skip to main content
Add your own
alternative version

A Simple Smart Pointer

, 11 Jan 2000 100K 1.6K 32
A template-based smart pointer implementation
The site is currently in read-only mode for maintenance. Posting of new items will be available again shortly.
ismart_demo.zip
SmartPtr.dsp
SmartPtr.exe
ismart_src.zip
#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.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Sandu Turcan

United Kingdom United Kingdom
No Biography provided

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.150520.1 | Last Updated 12 Jan 2000
Article Copyright 2000 by Sandu Turcan
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid