Lecture 4 - Page 4 : 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++
Member access control: private, public and protected
The use of
private
,
public
, and
protected
access control in C++ to members is similar to the access control in other object-oriented languages
The C++ Programming Language
: Page 402, 849
Observations
Access control is applied uniformly to names
Functions
Variables
Types
And others
private/public/protected are NOT used as modifiers of individual members
Access control via private/public/protected can be augmented with use of
friends
Base class access control
Friends