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


Tip of the Day
Language: C++
Expertise: Intermediate
Jun 12, 2000

Blocking Object Copying and Assignment

To block copying and assignment of an object, explicitly declare the assignment operator and copy constructor private. Don't define them, (there's no point in defining them because they can't be invoked anyway): only declare them. In the following example, class A has a public default constructor. In addition, it declares a private copy constructor and assignment operator to ensure that objects of its class can't be copied or assigned to:

 
class a
{
public:
 A(){}
private:
 A(const A&); // declared but not implemented
 A& operator=(const A&); // ditto
};
int main()
{
 A a; // fine, default ctor is public
 A b (a); // error, copy ctor is inaccessible
 A c; // fine
 c = a; // error, assignment operator is inaccessible
} 
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date