devxlogo

Blocking Object Copying and Assignment

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} 
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist