C++ class demonstration
A C++ 11 class has various constructors and assignment operators. There are default constructor, copy constructor and move constructor.
Lets consider our class to contain following members:
class Expample {
int *ref;
int id;
public:
// Constructors:
Example(); // Default constructor
Example(int id); // User constructor
Example(const Example&); // Copy constructor
Example(Example&&); // Move constructor (only in C++ 11)
// Destructor:
~Example();
// Assignment operators:
Example& operator= (const Example&); // Copy assignment
Example& operator= (Example&&); // Move assignment
}
Thus our class contains two fields: a pointer to an integer and an integer id.
Let's write its default constructor. It is a constructor of an "empty" object. We should initialize the reference by a null value.
Example() {
ref = nullptr;
id = 0;
}
This constructor will be called in following statements (variable definitions):
Example ex; Example ex(); Example ex = Example(); Example *ex = new Example; Example *ex = new Example();
Test program
This program demonstrates usage of different class constructors and assignments, including move constructor and assignment.
Source code: main.cpp
Example of output: log.txt