1. Class – A user defined type that contains data and a set of functionality to manipulate that data.
2. Object – an insanitation of a class. (Can be an insanitation of a struct although they are normally not referred to as such.)
3. Encapsulation – hiding data and implementation of functionality from the user of a class. This allows the implementation to be changed without affecting the user of the class.
4. Information Hiding – similar to encapsulation, more specifically not allowing the outside world know how you are storing your data and sometimes what data is being stored.
5. Interface – What a class exposes about itself. A class is capable of having multiple interfaces, in doing so it exposes different methods and/or properties through each interface.
6. Data Members – variables declared in the class definition.
7. Member Functions – the methods of a class. These functions can manipulate data members of a class.
8. Member Access Specifiers – labels such as private: and public:. These tags designate a which data members and/or member functions can be used given an object of that class type and which can only be used from the member functions themselves.
9. Utility Function – (also called helper function) “Private member function that supports the operation of a class’s public member functions”.
10. Constructor – member function of a class automatically called when an object is created. If you do not define your own constructor one will be provided for you.
11. Default Constructor – A constructor that can be invoked with no arguments. May be a constructor that takes parameters but has default values defined for them. There can only be one default constructor defined per class.
12. Destructor – member function of a class that is automatically called when an object is being destroyed. A common misconception is that the destructor is what destroys the object. It is just a last chance to do something while the object is being destroyed. The signature of the destructor is ~ClassName.
13. Memberwise Copy – using the assignment operator (=) between two objects without having overloaded it to perform a deep copy. Member variables from one object are assigned to the corresponding members in the other object with disregard the their data-types. Some data-types cannot be assigned to one another of the same type with the expected results.