Classes and Class Hierarchies in C++

Classes and Class Hierarchies in C++


C++ is a general purpose programming language designed as an improvement to the C programming language. In this sense it is a super set of C. The most important feature of C++ is the concept of a class which can be described as a user defined type.

The technical paper will be based on the importance of classes and class hierarchies in C++. The intent of this paper is to provide you with an in depth knowledge of how classes form the foundation of C++ programming.
Write a seven to ten (7-10) page paper in which you:

Research the following seven (7) concepts of C++ in order to answer the questions below.

i. Classes
ii. Objects as instantiations of classes
iii. Abstraction
iv. Encapsulation
v. Inheritance
vi. Templates
vii. Containers
Explain each of the concepts and analyze how they relate to C++ coding of programs.
Provide a code example using C++ syntax in the context of an employee database.
Determine how each of the provided concepts is related to the concept of object-oriented programming and support your answer.
The creator of C++, Bjarne Stroustrup, provided the following as advice to C++ programmers:
When you program, you create a concrete representation of the ideas in your solution to some problem. Let the structure of the program reflect those ideas as directly as possible:
i. If you can think of “it” as a separate idea, make it a class.
ii. If you can think of “it” as a separate entity, make it an object of some class.
iii. If two classes have a common interface, make that interface an abstract class.
iv. If the implementation of two classes has something significant in common, that commonality is a base class.
v. If a class is a container of objects, make it a template.
vi. If a function implements an algorithm for a container, make it a template function the algorithm for a family of containers.
vii. If a set of classes, templates, etc., are logically related, place them in a common namespace.
4. Explain each of Bjarne Stroustrup’s items and how they frame the object-oriented programming components into classes, objects, interfaces, templates, and containers.

To help you understand this assignment further, an example may be useful. For example, in doing your research and writing on the subject of classes you would be expected to write about the following:
How classes are an improvement from the concept of structures in the C programming language.
How classes encapsulate (enclose) functions that are members of the classes (enclosed within the class) and variables (enclosed within the class). The fact that these members represent behavior and characteristics of the class.
How classes restrict access to the member functions and variables through the use of access specifiers such as private, protected, and public.
5. Use at least ten (10) quality resources in this assignment. Note: Wikipedia and similar Websites do not qualify as quality resources.

Your assignment must follow these formatting requirements:
Be typed, double spaced, using Times New Roman font (size 12), with one-inch margins on all sides; citations and references must follow APA or school-specific format. Check with your professor for any additional instructions.
Include a cover page containing the title of the assignment, the student’s name, the professor’s name, the course title, and the date. The cover page and the reference page are not included in the required assignment page length.