Lecture 3 - Page 19 : 36
Notes about C++
Abstraction Mechanisms, Part 1
From C# classes to C++ classes
Organization of classes and members
Classes, structs and namespaces
Functions outside classes
Constructors
Constructors - initialization versus assignment
More about constructors
Use of constructors
Destructors
A class that needs a destructor
Resource acquisition is initialization - RAII
Auto Pointers
Object copying
Copying Point objects in parameter passing
Example of copying objects: Default copying
Example of copying objects: Programmed copying
Preventing object copying
Classes and Conversion
Implicit Conversion
Classes and Conversion: Examples
Static class members
Const member functions
Const member functions - const and mutable
Object Self-reference
Inline member functions
Concrete classes
Visibility and Access Control
Friends
Friends - Example 1
Friends - Example 2
Friends - class Point - notational convenience
Friends - Class Point - operator friends
Friends - Class Point - implicit conversion
Discussion - Encapsulation, Visibility and Access
Operator overloading
Example: Operator overloading in class Point
Implicit Conversion
Conversion operators
TT::operator S()
and constructors
T::T(S)
can be called implicitly
Implicit conversions
A constructor can be used implicitly, unless it is marked
explicit
.
A conversion operator can be activated implicitly.
Too many implicit conversions may easily lead to ambiguities
The compiler finds out
The programmer will have to resolve such issues.
An alternative to conversion operators and implicit use
Program an ordinary member function instead of a conversion operator
T::make_int(){...}
instead of
T::operator int(){...}