class X
{
public:
X() = default;
X(X const& other) = default;
X& operator=(X const& other) = default;
X(X&& other) = default;
X& operator=(X&& other) = default;
~X() = default;
};
// Rule of five: When the rule of three deletes the copy constructor or
// assignment operator, the move operators are no longer defined by default.
// If move semantics are desired for the class, they must be specified manually.
class Class {
public:
Class() {}
~Class() { ... } // Custom destructor
Class(const Class& c) { ... } // Custom copy constructor
void operator=(const Class& c) { ... } // Custom assignment operator
Class(Class&& c) { ... } // Custom move constructor
void operator=(Class&& c) { ... } // Custom move assignment operator
private:
some_type* non_copyable_resource = nullptr;
}
Code Example |
---|
Cpp :: lopping over an array c++ |
Cpp :: time delay in c++ |
Cpp :: c++ char array to int |
Cpp :: integer type validation c++ |
Cpp :: how to get a letter from the users string in c++ |
Cpp :: c++ string remove last character |
Cpp :: what is the difference between i++ and ++ i ? |
Cpp :: c++ memory leak |
Cpp :: reverse c++ string |
Cpp :: if even number c++ |
Cpp :: delete last char of string c++ |
Cpp :: wine linux |
Cpp :: 2d vector cpp |
Cpp :: c++ hours minutes seconds |
Cpp :: how to use decrement operator in c++ |
Cpp :: string to int in c++ |
Cpp :: loop through a vector in c++ |
Cpp :: random number generator c++ between 0 and 1 |
Cpp :: convert binary string to int c++ |
Cpp :: change integer to string c++ |
Cpp :: check uppercase c++ |
Cpp :: Story of c++ |
Cpp :: print 2d array c++ |
Cpp :: index string c++ |
Cpp :: upcasting in c++ |
Cpp :: cout hex c++ |
Cpp :: c++ hello world |
Cpp :: sort a vector c++ |
Cpp :: cpp create lambda with recursion |
Cpp :: how to square a number in c++ |