Hello, In the Session-1 of C++ hi-quality training being conducted by an IT-professional, the following concepts were discussed. Major qualities: a) Data Abstraction b) OO Programming c) Generic Programming Encapsulation: Combining code and data it manipulates together in a new entity. Polymorphism: Single name used for multiple related but different purposes. Inheritance: One class acquiring the properties of another, adding specific features. Scope resolution operator: resolves conflict between global and local variables. Inline function: is expanded in line when it is invoked âAccess specifiers/modifiersâ in C++: private, public, protected, friend âStorage/type qualifiersâ: const, volatile, static, mutable Mutable member: can be modified even when the object or the method is const. Namespace feature: surrounds declarations with unique name to avoid collisions. âusingâ declaration: to use a name from a namespace without the scope operator. New built-in data types of C++ : bool, wchar_t, string, complex, etc Create and read binary files in C++: using put() and get() function Name clash: when a name is defined in more than one place e.g. different class libs Some of the object-oriented methodologies:Object Oriented Development(OOD) Object Oriented Analysis and Design(OOAD), Object Modelling Techniques(OMT), Object Oriented Software Engineering(Objectory) Object Oriented Analysis (OOA), The Fusion Method Accessor: class operation that does not modify the state of an object. Modifier: changes the value of at least one data member. Also known as âmutatorsâ. Null object: object to indicate that a real object of that class does not exist. Differentiate between the message and method. Message Method Objects communicate by sending messages Provides response to a message. to each other. A message is sent to invoke a method. It is an implementation of an operation. Adaptor/Wrapper: to hide non-compatible interface or a non-OO-implementation Class invariant: a condition that defines all valid states for an object. Pure object oriented languages: Smalltalk, Java, Eiffel, Sather Node class: add new services beyond the services inherited from its base class. Orthogonal base class: two base classes having no overlapping methods or data Container class: generic class used to hold objects in memory or external storage. Types of container classes: heterogeneous (mixed) homogeneous (same) Protocol class: An abstract class is a protocol class if: it neither contains nor inherits from classes that contain member data, non-virtual functions, or private (or protected) members of any kind. it has a non-inline virtual destructor defined with an empty implementation, all member functions other than the destructor including inherited functions, are declared pure virtual functions and left undefined. Mixin class: provides some but not all of the implementation for a virtual base class Concrete class: used to define an object as an automatic variable on the stack. Handle class: maintains a pointer to an object that is programmatically accessible through the public interface of the handle class. Action class: provides actions that are delayed, transmitted, combined, etc Parameterized type: generic code that can use or manipulate any type. Proxy objects: Objects that points to other objects. Also called surrogates. Declaration: introduces a name into the program Definition: provides a unique description of an entity (e.g. type, instance, and function). Cloning: An object can carry out copying in two ways i.e. it can set itself to be a copy of another object, or it can return a copy of itself. The latter process is called cloning.