Lecture 3 - Page 26 : 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
Concrete classes
Bjarne Stroustrup distinguishes between
concrete classes
and
abstract classes
The C++ Programming Language
: Page 236-242
Concrete classes
Value types, as programmed with structs in C#
Similar to built in types
No superclasses - no subclasses
Non-concrete classes
Classes with pure virtual member functions
Classes in class hierarchies
Object-oriented programming
The class
Date
in §10.3 in
The C++ Programming Language
is an example of a concrete class