|
21 | 21 | * Default Constructor: constructor that can be called with no arguments, or that can take arguments, provided they are given default values.
|
22 | 22 | * Definition: declarations that fully define entity introduced by declaration.
|
23 | 23 | * Dereferencing: referring to object pointed to by pointer. indirection.
|
24 |
| -* Dynamic Binding: member function is selected dynamically (at run-time) based on type of object, not type of pointer/reference to that object. |
| 24 | +* Dynamic Binding: member function is selected dynamically (at run-time) based on type of object, not type of pointer/reference to that object. |
| 25 | +* Dynamic-Data: member object’s exact class can change dynamically over time. |
25 | 26 | * Encapsulation: preventing unauthorized access to some piece of information or functionality.
|
26 | 27 | * Enumeration: type that can hold set of integer values specified by user.
|
27 | 28 | * Escape Sequence: used to represent certain special characters within string literals and character literals.
|
|
67 | 68 | * One Definition Rule: ODR. there must be exactly one definition. definitions in different translation units must be identical.
|
68 | 69 | * Operator: defines type of operation between operands.
|
69 | 70 | * Overloading: using same name for operations on different types is called overloading.
|
70 |
| -* Parameterized Type: type that is parameterized over another type or some value. class template or genericity. |
| 71 | +* Parameterized Type: type that is parameterized over another type or some value. class template or genericity. |
| 72 | +* Per-Object-Data: any given object of class can instantiate different conformal (same type) member object upon initialization (wrapper), and exact class of member object is static property of object that wraps it. |
71 | 73 | * PIMPL: pointer to implementation.
|
72 | 74 | * Plain Old Data: POD. contiguous sequence of bytes in memory. raw data. allows block operations.
|
73 | 75 | * Pointer: points to object represents address of first byte in memory occupied by object.
|
|
105 | 107 | * Union: struct in which all members are allocated at same address so that it occupies only as much space as its largest member.
|
106 | 108 | * Variable: declared objects and declared references that are not non-static data members.
|
107 | 109 | * Variadic Template: allows to handle arbitrary number of arbitrary types.
|
108 |
| -* Virtual Table: data structure for classes that have virtual functions to handle dynamic binding. |
| 110 | +* Virtual Data: definition (class) of member object is overridable in derived classes provided its declaration (type) remains same, and this overriddenness is static property of derived class. |
| 111 | +* Virtual Table: data structure for classes that have virtual functions to handle dynamic binding. |
109 | 112 |
|
110 | 113 | [C++ ENTITIES]
|
111 | 114 | * Type
|
|
520 | 523 | * you can catch exception by value, by reference or by pointer.
|
521 | 524 | * prefer member functions over nonmembers for operations that need access to representation.
|
522 | 525 | * prefer nonmember functions over members for operations that do not need access to representation.
|
| 526 | +* virtual member function means declaration must stay same in derived classes, but the definition can be overridden. |
| 527 | +* unless compelling reasons are given to contrary, member objects should be by value and parameters should be by reference. |
523 | 528 |
|
524 | 529 | * Nifty Counter Idiom:
|
525 | 530 | * Return Value Optimization:
|
|
0 commit comments