cplusplus-primer-5ed-notes/part_iii/chap13_copy_control.md

847 B

Chapter 13. Copy Control

Advanced topic for class constructors/desctructors

Copy Control = operations of following:

  • Copy- & Move- constructor: define what happens when an object is initialized from another object of the same type
  • Copy- & Move- assignment: define what happens when we assign an object (class A) to object (class B)
  • Destructor: define what happens when object of type A destroyed

When Copy Controls are not cleared defined, C++ compiler automatically create them; -> undefined behavior

13.1 Copy, Assign, And Destroy

13.1.1 Copy Constructor

class Foo {
public:
   Foo();             // default constructor
   Foo(const Foo&);   // copy constructor
   // ...
};
  • copy constructor's 1st parameter is a reference to the class type
  • copy constructor's other parameters have default values