C++ FAQ
/ Topics beginning with 'I'
Recent changes - 11 changed FAQs.
In a list,
or in a chain,
or here:
[4.1],
[4.2],
[6.3],
[6.12],
[10.3],
[15.22],
[27.15],
[35.13],
[35.14],
[35.15],
[39.6].
Translated into 16 languages.
English,
Belorussian / Minsk,
Bosnian / Serbian / Croatian,
Bulgarian,
Chinese (GB, Mainland),
Chinese (Big5, Taiwan),
French,
German,
Greek,
Korean,
Polish,
Portuguese,
Romanian,
Russian,
Spanish,
Turkish.
Mirrored in 11 countries.
USA,
France,
Germany,
Ireland,
Israel,
Italy,
Poland,
Portugal,
Spain,
Taiwan,
U.K..
|
C++ FAQ topics beginning with 'I'
[ A
| B
| C
| D
| E
| F
| G
| H
| I
| J
| K
| L
| M
| N
| O
| P
| Q
| R
| S
| T
| U
| V
| W
| X
| Y
| Z
]
- I/O; translations of end-of-line sequences ...
[15.12],
[15.13]
- Identity of an object ...
[36.11]
- Idioms
- if (std::cin >> foo) and std::istream (input/output) ...
[39.2],
[39.3]
- if (std::cout << foo) and std::istream (input/output) ...
[39.1]
- if
- Avoiding decision logic via virtual functions ...
[20.6]
- Some are eliminated by try / catch / throw ...
[17.1]
- Unnecessary ifs increase bugs, cost, time-to-market ...
[17.1]
- within macros ...
[39.4]
- if keyword ...
[17.1]
- ignore() and std::istream (input/output) ...
[15.3]
- IMAO (Acronym) ...
[5.1]
- IMHO (Acronym) ...
[5.1]
- Immutable (const) pointers (Const correctness) ...
[18.5]
- Immutable (const) pointers ...
[18.5]
- IMNSHO (Acronym) ...
[5.1]
- IMO (Acronym) ...
[5.1]
- Imperfect programming languages ...
[6.2]
- Improper inheritance: behavior, not just interface ...
[21.12]
- #include
- include
- Increment operator: operator++ ...
[13.9],
[13.13]
- Increment operators operator++ (see also Operator overloading) ...
[13.14],
[13.15]
- Indirection, Extra layers of ...
[31.5]
- Industrial Strength C++ ...
[27.13]
- Inequality test operator: operator!= ...
[13.9],
[13.13]
- Infinite recursion, Serialization and ...
[36.11]
- Infinity: floating point numbers ...
[29.15]
- Infix operators ...
[5.3]
- Inherit your own exception classes (ultimately) from std::exception (see also under Exceptions) ...
[17.12]
- Inheritance ...
[6.8],
[19],
[20],
[21],
[22],
[23]
- Abstract base classes (ABCs) ...
[22],
[22.2],
[22.3]
- Abstract functions ...
[22.4]
- Access of private by derived ...
[19.6]
- Access of protected and private ...
[19.5]
- Access of protected by derived ...
[19.7],
[19.8]
- Accessing members inherited from a template base class ...
[35.19],
[35.20]
- Accessing nested types inherited from a template base class ...
[35.18],
[35.20]
- Array of Derived vs. of Base ...
[21.4]
- Assignment operators in the derived class ...
[12.4]
- Bag of Apple vs. of Fruit ...
[21.3]
- Calling virtuals from constructors ...
[10.7],
[23.5]
- Calling virtuals from constructors: idiom ...
[23.6]
- Calling virtuals from destructors ...
[23.5],
[23.7]
- Calling virtuals from non-virtuals in the base class ...
[23.1],
[23.2]
- Circle vs. Ellipse ...
[21.6],
[21.7],
[21.8],
[21.9],
[21.10],
[21.11]
- Container of Thing vs. of Anything ...
[21.3]
- Derived classes can access the protected base members of only their own objects ...
[7.7]
- Derived* → Base* conversion ...
[19.4],
[21.2]
- Derived* → private Base* conversion (invalid) ...
[24.4]
- Derived** → Base** conversion (invalid) ...
[21.2]
- Destructor order ...
[11.12]
- Determining if it is proper ...
[21.12]
- Differences between C++ and Smalltalk inheritance ...
[30.4]
- Dynamic binding vs. switch statements ...
[25.4]
- Friendship privileges are not inherited ...
[14.4]
- Fully-qualified calls to base-class member functions ...
[20.5]
- Hiding inherited public features ...
[21.1],
[21.6],
[21.7],
[21.8],
[21.9],
[23.9]
- Hiding rule ...
[23.9]
- How to code inheritance ...
[19.3]
- Importance of inheritance ...
[19.1]
- Intuition isn't always correct ...
[21.3]
- Is-a-kind-of ...
[19.2],
[21.11],
[21.12]
- Meaning is "is substitutable for" ...
[21.8],
[21.11]
- Meaning is not "is a kind of" ...
[21.8],
[21.11]
- Meaning is not "is a subset of" ...
[21.8],
[21.11]
- Meaning is not "is a" ...
[21.8],
[21.11]
- Members inherited from a template base class ...
[35.19],
[35.20]
- Multiple inheritance ...
[25]
- Nested types inherited from a template base class ...
[35.18],
[35.20]
- Object layout in memory ...
[32.9],
[38.9]
- Old code calls new code ...
[6.10]
- Parking-lot of Car vs. of Vehicle ...
[21.3]
- Preventing inheritance (i.e., "final classes") ...
[23.11]
- private inheritance ...
[24],
[24.1]
- private inheritance access rules ...
[24.6]
- private inheritance vs. composition ...
[24.2],
[24.3]
- protected inheritance ...
[24]
- protected inheritance access rules ...
[24.6]
- protected vs. private inheritance ...
[24.5]
- Pure virtual functions ...
[22.4]
- Redefining non-virtuals ...
[23.8]
- Smalltalk differences ...
[30.5]
- Specification device ...
[19.2],
[21.11],
[21.12]
- Types nested in a template base class ...
[35.18],
[35.20]
- virtual constructors ...
[16.24],
[17.16],
[20.8],
[22.5]
- virtual data ...
[31.2],
[31.3]
- virtual destructor coding standard ...
[20.7]
- virtual functions ...
[20.1]
- virtual functions are central to OO ...
[6.9]
- Virtual inheritance ...
[25]
- What your Mother didn't tell you ...
[23]
- When to use inheritance ...
[19.2]
- Inheritance but no pointers, Serialization and ...
[36.8]
- Inheritance, Multiple ...
[25]
- Inheritance, private ...
[24],
[24.1]
- Access rules ...
[24.6]
- Compared with composition ...
[24.2]
- Criteria for private inheritance vs. composition ...
[24.3]
- Derived* to private Base* conversion (invalid) ...
[24.4]
- private vs. protected inheritance ...
[24.5]
- Inheritance, protected ...
[24]
- Access rules ...
[24.6]
- protected vs. private inheritance ...
[24.5]
- Inheritance, Virtual ...
[25]
- init() functions ...
[10.3]
- Initialization lists
- Initialization of a built-in/intrinsic type ...
[10.18],
[26.9]
- Initialization of a static const member datum ...
[10.13]
- Initialization of a static member datum ...
[10.11],
[10.12],
[10.14],
[10.15],
[10.17]
- Initialization of instances via constructors ...
[10.1]
- Inline functions ...
[9]
- Better than #define macros ...
[9.5]
- Can make executables larger ...
[9.3]
- Can make executables smaller(!) ...
[9.3]
- Can make performance better ...
[9.3]
- Can make performance worse(!) ...
[9.3]
- Can make thrashing happen ...
[9.3]
- Can make thrashing not happen(!) ...
[9.3]
- Can make zero speed-difference(!) ...
[9.3]
- Defined outside class body ...
[9.7]
- Defined within class body ...
[9.8]
- Forward declarations ...
[39.13]
- Functionoids ...
[33.14]
- Inlining virtual functions ...
[31.5],
[31.6]
- Like a #define macro ...
[9.1]
- Member functions ...
[9.7]
- Non-member functions ...
[9.6]
- Procedural integration ...
[9.2]
- Safety without loss of speed ...
[6.8],
[9.4]
- inline keyword ...
[9.1],
[9.6],
[9.7],
[9.9],
[39.13]
- Input/output ...
[15]
- Bad input, ignoring ...
[15.3]
- Binary mode ...
[15.13]
- Binary mode on MS-DOS ...
[15.12]
- clear() and std::istream ...
[15.3]
- Ending lines: std::endl vs. '\n' ...
[15.7]
- eof and std::istream ...
[15.2],
[15.5]
- if (std::cin >> foo) and std::istream ...
[39.2],
[39.3]
- if (std::cout << foo) and std::istream ...
[39.1]
- ignore() and std::istream ...
[15.3]
- invalid input characters and std::istream ...
[15.2],
[15.3]
- operator>> and std::istream ...
[15.10]
- operator<< (virtual) and std::ostream ...
[15.11]
- operator<< and std::ostream ...
[15.8],
[15.9]
- remembering bad state and std::istream ...
[15.6]
- std::istream and clear() ...
[15.3]
- std::istream and eof ...
[15.2],
[15.5]
- std::istream and if (std::cin >> foo) ...
[39.2],
[39.3]
- std::istream and if (std::cout << foo) ...
[39.1]
- std::istream and ignore() ...
[15.3]
- std::istream and invalid input characters ...
[15.2],
[15.3]
- std::istream and remembering bad state ...
[15.6]
- std::istream and while (std::cin >> foo) ...
[15.4]
- std::istream operator>> ...
[15.10]
- std::ostream operator<< (virtual) ...
[15.11]
- std::ostream operator<< ...
[15.8],
[15.9]
- while (std::cin >> foo) and std::istream ...
[15.4]
- Insecure, pathetic wannabes ...
[9.9]
- Inspector methods ...
[18.10],
[18.11],
[18.12]
- Installed base of C++: size ...
[6.6],
[6.8]
- Instance initialized via constructors ...
[10.1]
- Instance-data formats, Version numbers during serialization ...
[36.7]
- int main(), not void main() ...
[5.8],
[29.3]
- int: choosing between integer sizes ...
[29.5]
- Integration, Procedural ...
[9.2]
- Interfaces
- A simplified view in the user's vocabulary ...
[7.3]
- Abstract base classes (ABCs) ...
[22.2]
- Design interfaces from the outside-in ...
[13.13]
- Goal of interface design ...
[7.4]
- More valuable than implementation ...
[22.1]
- protected interface ...
[19.7],
[19.8],
[19.9]
- Separate from implementation ...
[22.2]
- International Obfuscated C Coding Contest ...
[27.14]
- Interview questions ...
[6.14]
- Intrinsic (built-in, primitive) data types ...
[26]
- Intuition isn't always correct ...
[21.3],
[21.4],
[21.6],
[21.7],
[21.8],
[21.9],
[21.11]
- Invalid conversion
- array-of-Derived → array-of-Base ...
[21.4]
- Invalid conversion: Derived** → Base** pointers ...
[21.2]
- Invalid conversion: Foo** → Foo const** pointers ...
[18.17]
- Invalid input characters (see Input/output) ...
[15.2]
- invalid input characters and std::istream (input/output) ...
[15.2],
[15.3]
- Inversion, Law of ...
[20.6]
- iostream header ...
[15.1]
- iostream.h (see "iostream header") ...
[15.1]
- Is-a-kind-of (see also Inheritance) ...
[19.2],
[21.12]
- Isaacson, E. ...
[29.17],
[37.7]
- ISO ...
[6.12]
- istream and clear() (input/output) ...
[15.3]
- istream and eof (input/output) ...
[15.2],
[15.5]
- istream and if (std::cin >> foo) (input/output) ...
[39.2],
[39.3]
- istream and if (std::cout << foo) (input/output) ...
[39.1]
- istream and ignore() (input/output) ...
[15.3]
- istream and invalid input characters (input/output) ...
[15.2],
[15.3]
- istream and remembering bad state (input/output) ...
[15.6]
- istream and while (std::cin >> foo) (input/output) ...
[15.4]
- istream input operator: operator>> ...
[15.4],
[15.10],
[39.2],
[39.3]
- istream operator>> (input/output) ...
[15.10]
- istringstream ...
[39.2],
[39.3]
- Iterators ...
[34.5]
- itoa() ...
[39.1]
|