If you do not want to use a function generated automatically by the compiler, you should explicitly deny
The knowledge points in this section are
If you do not want the compiler to automatically generate the copy function and the copy assignment function. We can do this in two ways
The first type:
The copy function and the copy assignment function are declared as private members, and they are not implemented. This will not compile if you call such a function compiler. If other member functions call them, the connector cannot pass the connection.
The following code:
class HomeForSale{public: ……private: HomeForSale(const HomeForSale&); operator=(const HomeForSale&);};
The second type:
You can define a base class by declaring the copy function of the base class and the copy assignment function as private members, so that derived class cannot compile by invoking the copy function and the copy assignment function.
The following code:
class Uncopyable{{protected: Uncopyable(){} ~Uncopyable(){};private: Uncopyable(const Uncopyable&); operator=(const Uncopyable&);};class HomeForSale:public Uncopyable{……};
Effective C + + clause 6