In C++, a Copy Constructor may be called in following cases:
1. When an object of the class is returned by value.
2. When an object of the class is passed (to a function) by value as an argument.
3. When an object is constructed based on another object of the same class.
4. When compiler generates a temporary object.
It is however, not guaranteed that a copy constructor will be called in all these cases, because the C++ Standard allows the compiler to optimize the copy away in certain cases, one example being the return value optimization (sometimes referred to as RVO).
- Initialization of data members
- When do we use Initializer List in C++?
- Why copy constructor argument should be const in C++?
- malloc() vs new
- Copy Constructor in C++
- Measure execution time with high precision in C/C++
- Why strcpy and strncpy are not safe to use?
- Applications of Pointers in C/C++
- Communication between two process using signals in C
- Pre-increment and Post-increment in C/C++