Lecture overview -- Keyboard shortcut: 'u'  Previous page: Constructors -- Keyboard shortcut: 'p'  Next page: More about constructors -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Lecture 3 - Page 6 : 36
Notes about C++
Abstraction Mechanisms, Part 1
Constructors - initialization versus assignment

The main task of a constuctor is to initalize data members

In C++ initialization and assignment must be distinguished

Initialization is controlled by copy constructors, assignment by operator= overloads

  • Effective C++, Third edition: Item 4
 

y:/Kurt/Files/Advanced-programming-cpp/cpp/kn/constructors-initialization-assignment/rect.hThe Rectangle class - header file.


y:/Kurt/Files/Advanced-programming-cpp/cpp/kn/constructors-initialization-assignment/rect-ini.ccRectangle constructors - with initialization.


y:/Kurt/Files/Advanced-programming-cpp/cpp/kn/constructors-initialization-assignment/rect-ass.ccRectangle constructors - with default initialization and subsequent assignments.


Const data members and references must be initialized - they cannot be assigned in the body of the constructor

Always prefer explicit initialization - the rules for implicit initialization are (too) complicated