Lecture 4 - Page 8 : 24
Notes about C++
Abstraction Mechanisms, Part 2
Inheritance in C++
Inheritance: Constructors and destructors
Inheritance: Copying and slicing
Member access control: private, public and protected
Virtual Functions
Destructors and Inheritance - Virtual Destructors
Hiding inherited names
Abstract Classes
What about interfaces in C++?
What about nested classes in C++?
What about prevention of derivation in C++
Pointer to members
Multiple inheritance - issues and C++ solutions
Multiple inheritance - issues and C++ solutions
Multiple inheritance: Ambiguities
Replicated base class
Is repeated inheritance possible?
Is repeated inheritance possible? No!
Shared base class: Virtual base
Base class access
Base class access
Base class access - the C++ rules
Base class access - Examples
Discussion: No single most general class in C++
Abstract Classes
An
abstract class
in C++ is a class with one or more
pure virtual functions
The C++ Programming Language
: Page 313
Abstract class
A class is abstract if it has one or more pure virtual functions
No objects can be created from an abstract class
No
abstract
modifiers are used on the class, nor on member functions
Pure virtual functions
A pure virtual function is marked with a
0
virtual void vf(double d) = 0;
A variant were vf is a pure virtual function in class A.