dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
May 21, 2001

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


Control the Lifetime of Objects Using Nested Scopes


Suppose that we have an object A, whose constructor allocates lots of resources and the destructor frees that.
 
class A
{
 public:
	A()
	{
 	  //Allocate resources, memory, handles etc.
	}


	~A()
	{
 	  //Free resources, memory, handles etc.
	}

	//other functions
	void foo();
	void bar();

}

A typical usage of A may be:
 
main()
{

 A a1;

 ...
 ...
 a1.foo()
 ...
 ...

 A a2;

 ...
 ..
 a2.bar()
 ..
 ..

 //other lengthy logic.
 ..

 //a1 and a2 will be destructed here..
}

The problem with the above approach is that a1 and a2 will not be destructed until the end of the program. Using nested scopes forces the destruction of the objects immediately after their usage:
 
main()
{
	{
	 A a1;

	 ...
	 ...
	 a1.foo()
	 ...
	 //a1 will be desturcted here
	}

	 ...
	{
	 A a2;

	 ...
	 ..
	 a2.bar();
	 //a2 will be desturcted here
	}
	 ..
	 ..

	 //other lengthly logic.
	 ..

}
Rajesh Chathapuram
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date