How to use = delete in C++ to prevent copying class objects
This article will explain in detail how to use = delete to prevent copy objects in C++. The content of the article is of high quality, so the editor shares it for you as a reference. I hope you will have some understanding of the relevant knowledge after reading this article.
An example of a singleton pattern
For example, in the Singleton design pattern, you want the objects of the class to be available only through getInstance static methods. Before the release of Category 11, classes were implemented by privatizing their copy constructors and assignment operators.
Look at the code first.
CreateInstance and deleteInstance are the means that the Singleton class provides for users to access the only objects of this class. To prevent users from creating or copying objects separately, the code declares constructors, destructors, copy constructors, and assignment operators as private.
Also, copy constructors and assignment operators are declared undefined, which ensures that even Singleton itself, or friend functions, cannot get a copy of Singleton. But there is a slight flaw in this method: even if the test method in the code uses a copy constructor, there will be no link errors as long as the test method is not actually called.
New practices in the new standard
Caching 11 adds the = delete modifier to make it clear that although certain functions are declared, they are prohibited from being used. The copy constructor and assignment operator in this example can be declared as follows:
So much for sharing about how to use = delete to prevent copy class objects in C++. I hope the above can be helpful and learn more. If you think the article is good, you can share it for more people to see.