An object is a software “bundle,” usually thought of as being a class or structure consisting of a set of variables which defines the states the object can exist in, and a set of functions that defines the behavior of the object.
A single version of an object/class.
The process of creating a new version of an object/class.
The header file, one of the two files needed to define a class. Contains the definition of the class, using a syntax similar to that for defining a data structure.
The second file needed to define a class. It contains all of the functions that are members of that class.
In C++ classes you can assign to the variables and functions an access scope using: public, private, and protected.
Member Access Specifiers
A function that is not a part of a class, but has been given access to the private members (variables and functions) of the class.
A mechanism by which one class acquires the properties (member variables and member functions) of another class.
A class can have more than one superclass.
The ability to use the same named functions in sub-classes of a parent class to perform different actions.
The source code for an object can be written and maintained independently of the source code for other objects.
By interacting only with an object's methods, the details of its internal implementation remain hidden from the outside world.
If an object already exists (perhaps written by another software developer), you can use that object in your program.
If a particular object turns out to be problematic, you can simply remove it from your application and plug in a different object as its replacement.
Pluggability and debugging ease
A block of code in an application which can be written, compiled, and maintained independently of the rest of the code in the application.
Reducing the interdependency of objects in an application to make the application more flexible and to enable modifying an object without affecting other objects in the application.
When an object needs to perform a certain task, but instead of doing that task directly it "asks" another object to handle the task, or sometimes just part of the task.
Hiding the internal state of an object and requiring all interaction to be performed through an objects methods. (Note: the answer is not Data Hiding)
An expression of desired behavior for a software system. It is specific thing your system has to do to work correctly.
Determining a set of components (objects, classes, etc.) and interfaces between those components in a software system that will satisfy the requirements and solve the problem.
Object Oriented Design*
What are the three places in memory where variables and instances of structs and classes can be allocated?
Stack, Heap, and Microprocessor
Refers to where a variable can be accessed in a program.
A specifier used to specify access to a global variable in one source file when the actual global variable is defined in another source file.
A variable defined this way will be allocated on the heap.
Identifying, at run time, the sub-class type of an object given only a parent class pointer or reference to the object.
What are virtual functions? Why is it best to make a function in a parent class virtual so that sub-classes have to implement it, i.e. explain early vs. late binding.
Early / Static / Compile time binding
Late / Dynamic / Run time binding
A section of code (usually one or more functions) in a program that is running independently of the rest of the program. Threading is a type of multi-tasking, and there are two types: Process based and Thread based.
If a function in a parent class is labeled this, all subclasses are forced to override and implement their own version of that function.
A system that allows a software designer to graphically layout and model a software application.
The process of creating the design by starting at a high level of abstraction and iteratively working down to more detail.
The process of studying and analyzing what the customer wants in order to develop a stated list of requirements.
Flags if a resource is being used.
Works like a token in a token ring network.
A way for threads to communicate between themselves.
Another way for threads to communicate or time events.