C++ FAQ
/ Topics beginning with 'O'
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 'O'
[ 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
]
- Obfuscated C Code Contest ...
[27.14]
- Object ...
[7.2]
- Object formats, Version numbers during serialization ...
[36.7]
- Object identity, Serialization and ...
[36.11]
- Object layout in memory ...
[32.9],
[38.9]
- Object lifetime
- Controlling lifetime of locals ...
[11.6],
[11.7],
[11.8]
- In heterogeneous containers ...
[34.4]
- Order of destruction for array elements ...
[11.3]
- Order of destruction for locals ...
[11.2]
- Register liveness ...
[31.5]
- Rule for for loop variables ...
[39.8]
- Using friend classes to achieve separate lifetimes ...
[14.2]
- Object-oriented: So what? ...
[6.3]
- Observable semantics ...
[9.9],
[13.9],
[35.7],
[35.8]
- Off-topic postings ...
[5.10],
[5.11],
[5.12]
- Old code calls new code ...
[6.10]
- On floating point arithmetic ...
[29.17]
- One size does not fit all ...
[6.16],
[6.17],
[9.3],
[17.5],
[17.8],
[18.8],
[18.9],
[19.8],
[21.8],
[23.3],
[23.4],
[25.2],
[25.3],
[25.5],
[25.6],
[29.7],
[29.11],
[36.2],
[36.3],
[36.5],
[36.6]
- OO (Acronym) ...
[5.1]
- OO design books ...
[28.8]
- Operands: friend-functions allow promotion of first ...
[14.5]
- ! operator (bang!) ...
[29.13]
- ?: operator ...
[27.6]
- Operator ?: ...
[27.6]
- operator delete(void*) (see also Operator overloading) ...
[16.9],
[16.12]
- operator delete(void*) ...
[16.9],
[16.12]
- operator delete[](void*) (see also Operator overloading) ...
[16.12]
- operator delete[](void*) ...
[16.12]
- operator keyword ...
[13.4]
- operator new(size_t) (see also Operator overloading) ...
[16.10]
- operator new(size_t) ...
[16.10]
- Operator overloading ...
[13]
- Arithmetic operators ...
[13.9]
- Assignment operator ...
[12],
[22.5]
- Behavioral equivalence ...
[13.9]
- Can't invent new operators ...
[13.7]
- Can't replace behavior on built-in operators ...
[13.6],
[26.10]
- Coding standards ...
[27.10]
- Comma operator ...
[13.9]
- Constructive operators should return by value ...
[13.9]
- Constructive operators shouldn't change their operands ...
[13.9]
- Decrement operators operator-- ...
[13.14],
[13.15]
- Derived class' assignment operator ...
[12.4]
- Doctrine of Least Surprise ...
[13.9]
- Does help the users of a class ...
[13.2]
- Does not help the developer of a class ...
[13.4]
- Examples ...
[13.3]
- Exploits developer's intuition ...
[6.8]
- Guidelines for when and how ...
[13.9]
- Increment operators operator++ ...
[13.14],
[13.15]
- Mixed-mode arithmetic operators ...
[13.9]
- operator delete(void*) ...
[16.9],
[16.12]
- operator delete[](void*) ...
[16.12]
- operator new(size_t) ...
[16.10]
- operator!= (inequality test operator) ...
[13.9],
[13.13]
- operator& (address-of operator) ...
[16.25]
- operator> (greater-than operator) ...
[13.9]
- operator>> (std::istream input operator) ...
[15.4],
[15.10],
[39.2],
[39.3]
- operator>= (greater-than-or-equal-to operator) ...
[13.9]
- operator< (less-than operator) ...
[13.9]
- operator<< (std::ostream output operator) ...
[8.4],
[15.8],
[15.9],
[39.1]
- operator<< (std::ostream output operator; virtual) ...
[15.11]
- operator<= (less-than-or-equal-to operator) ...
[13.9]
- operator() (funcall operator) ...
[13.10],
[13.11],
[13.12],
[16.17],
[16.18],
[16.19]
- operator* (dereference operator) ...
[8.8],
[13.9],
[13.13],
[16.22],
[16.25]
- operator* (multiply operator) ...
[13.1]
- operator+ (addition operator) ...
[13.1]
- operator++ (increment operator) ...
[13.9],
[13.13]
- operator++ (prefix vs. postfix increment operator) ...
[13.14]
- operator++ (prefix vs. postfix speed) ...
[13.15]
- operator-> (dereference operator) ...
[8.8],
[16.22],
[16.25]
- operator-- (prefix vs. postfix increment operator) ...
[13.14]
- operator-- (prefix vs. postfix speed) ...
[13.15]
- operator= ...
[12],
[13.9],
[22.5]
- operator== (equality test operator) ...
[13.9],
[13.13]
- operator[] (subscript operator comes in pairs) ...
[13.9],
[18.12]
- operator[] (subscript operator) ...
[8.3],
[13.4],
[13.10],
[13.11],
[13.12]
- Promotion on the left hand side ...
[13.9]
- Purpose of operator overloading ...
[13.1]
- Rules of thumb for when and how ...
[13.9]
- Self-assignment ...
[12.1],
[12.2],
[12.3]
- Short-circuit operators ...
[13.9]
- Which operators can be overloaded ...
[13.5]
- Which operators should be overloaded ...
[13.8]
- operator!= (inequality test operator) (see also Operator overloading) ...
[13.9],
[13.13]
- operator!= (inequality test operator) ...
[13.9],
[13.13]
- operator& (address-of operator) (see also Operator overloading) ...
[16.25]
- operator& (address-of operator) ...
[16.25]
- operator> (greater-than operator) (see also Operator overloading) ...
[13.9]
- operator> (greater-than operator) ...
[13.9]
- operator>> (std::istream input operator) (see also Operator overloading) ...
[15.4],
[15.10],
[39.2],
[39.3]
- operator>> (std::istream input operator) ...
[15.4],
[15.10],
[39.2],
[39.3]
- operator>> and std::istream (input/output) ...
[15.10]
- operator>= (greater-than-or-equal-to operator) (see also Operator overloading) ...
[13.9]
- operator>= (greater-than-or-equal-to operator) ...
[13.9]
- operator< (less-than operator) (see also Operator overloading) ...
[13.9]
- operator< (less-than operator) ...
[13.9]
- operator<< (std::ostream output operator) (see also Operator overloading) ...
[8.4],
[15.8],
[15.9],
[39.1]
- operator<< (std::ostream output operator) ...
[8.4],
[15.8],
[15.9],
[39.1]
- operator<< (std::ostream output operator; virtual) (see also Operator overloading) ...
[15.11]
- operator<< (std::ostream output operator; virtual) ...
[15.11]
- operator<< (virtual) and std::ostream (input/output) ...
[15.11]
- operator<< and std::ostream (input/output) ...
[15.8],
[15.9]
- operator<= (less-than-or-equal-to operator) (see also Operator overloading) ...
[13.9]
- operator<= (less-than-or-equal-to operator) ...
[13.9]
- operator() (funcall operator) (see also Operator overloading) ...
[13.10],
[13.11],
[13.12],
[16.17],
[16.18],
[16.19]
- operator() (funcall operator) ...
[13.10],
[13.11],
[13.12],
[16.17],
[16.18],
[16.19]
- operator* (dereference operator) (see also Operator overloading) ...
[8.8],
[13.9],
[13.13],
[16.22],
[16.25]
- operator* (dereference operator) ...
[8.8],
[13.9],
[13.13],
[16.22],
[16.25]
- operator* (multiply operator) (see also Operator overloading) ...
[13.1]
- operator* (multiply operator) ...
[13.1]
- operator+ (addition operator) (see also Operator overloading) ...
[13.1]
- operator+ (addition operator) ...
[13.1]
- operator++ (increment operator) (see also Operator overloading) ...
[13.9],
[13.13]
- operator++ (increment operator) ...
[13.9],
[13.13]
- operator++ (prefix vs. postfix increment operator) (see also Operator overloading) ...
[13.14]
- operator++ (prefix vs. postfix increment operator) ...
[13.14]
- operator++ (prefix vs. postfix speed) (see also Operator overloading) ...
[13.15]
- operator++ (prefix vs. postfix speed) ...
[13.15]
- operator-> (dereference operator) (see also Operator overloading) ...
[8.8],
[16.22],
[16.25]
- operator-> (dereference operator) ...
[8.8],
[16.22],
[16.25]
- operator-- (prefix vs. postfix increment operator) (see also Operator overloading) ...
[13.14]
- operator-- (prefix vs. postfix increment operator) ...
[13.14]
- operator-- (prefix vs. postfix speed) (see also Operator overloading) ...
[13.15]
- operator-- (prefix vs. postfix speed) ...
[13.15]
- operator= (see also Operator overloading) ...
[12],
[13.9],
[22.5]
- operator= ...
[12],
[13.9],
[22.5]
- operator== (equality test operator) (see also Operator overloading) ...
[13.9],
[13.13]
- operator== (equality test operator) ...
[13.9],
[13.13]
- operator[] (subscript operator comes in pairs) (see also Operator overloading) ...
[13.9],
[18.12]
- operator[] (subscript operator comes in pairs) ...
[13.9],
[18.12]
- operator[] (subscript operator) (see also Operator overloading) ...
[8.3],
[13.4],
[13.10],
[13.11],
[13.12]
- operator[] (subscript operator) ...
[8.3],
[13.4],
[13.10],
[13.11],
[13.12]
- Optimization
- Abstract destructor with inline definition ...
[33.13]
- const_cast ...
[18.14]
- Pure virtual destructor with inline definition ...
[33.13]
- Return-by-value optimization ...
[10.9]
- Return-local-variable-by-value optimization ...
[10.10]
- Order of ctors with inheritance ...
[25.14]
- Order of dtors with inheritance ...
[25.15]
- Order of static constructors ...
[10.14],
[10.15],
[10.17],
[10.18],
[26.9]
- Order of static destructors ...
[10.16]
- OS/2
- Binary mode for opening streams ...
[15.12]
- Binary mode for std::cin and std::cout ...
[15.13]
- ostream operator<< (input/output) ...
[15.8],
[15.9]
- ostream operator<< (virtual) (input/output) ...
[15.11]
- ostream output operator: operator<< ...
[8.4],
[15.8],
[15.9],
[39.1]
- ostream output operator; virtual: operator<< ...
[15.11]
- ostringstream ...
[35.8],
[39.1]
- OTOH (Acronym) ...
[5.1]
- Output/input ...
[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]
- Overloaded operators ...
[13]
- Arithmetic operators ...
[13.9]
- Assignment operator ...
[12],
[22.5]
- Behavioral equivalence ...
[13.9]
- Can't invent new operators ...
[13.7]
- Can't replace behavior on built-in operators ...
[13.6],
[26.10]
- Coding standards ...
[27.10]
- Comma operator ...
[13.9]
- Constructive operators should return by value ...
[13.9]
- Constructive operators shouldn't change their operands ...
[13.9]
- Decrement operators operator-- ...
[13.14],
[13.15]
- Derived class' assignment operator ...
[12.4]
- Doctrine of Least Surprise ...
[13.9]
- Does help the users of a class ...
[13.2]
- Does not help the developer of a class ...
[13.4]
- Examples ...
[13.3]
- Exploits developer's intuition ...
[6.8]
- Guidelines for when and how ...
[13.9]
- Increment operators operator++ ...
[13.14],
[13.15]
- Mixed-mode arithmetic operators ...
[13.9]
- operator delete(void*) ...
[16.9],
[16.12]
- operator delete[](void*) ...
[16.12]
- operator new(size_t) ...
[16.10]
- operator!= (inequality test operator) ...
[13.9],
[13.13]
- operator& (address-of operator) ...
[16.25]
- operator> (greater-than operator) ...
[13.9]
- operator>> (std::istream input operator) ...
[15.4],
[15.10],
[39.2],
[39.3]
- operator>= (greater-than-or-equal-to operator) ...
[13.9]
- operator< (less-than operator) ...
[13.9]
- operator<< (std::ostream output operator) ...
[8.4],
[15.8],
[15.9],
[39.1]
- operator<< (std::ostream output operator; virtual) ...
[15.11]
- operator<= (less-than-or-equal-to operator) ...
[13.9]
- operator() (funcall operator) ...
[13.10],
[13.11],
[13.12],
[16.17],
[16.18],
[16.19]
- operator* (dereference operator) ...
[8.8],
[13.9],
[13.13],
[16.22],
[16.25]
- operator* (multiply operator) ...
[13.1]
- operator+ (addition operator) ...
[13.1]
- operator++ (increment operator) ...
[13.9],
[13.13]
- operator++ (prefix vs. postfix increment operator) ...
[13.14]
- operator++ (prefix vs. postfix speed) ...
[13.15]
- operator-> (dereference operator) ...
[8.8],
[16.22],
[16.25]
- operator-- (prefix vs. postfix increment operator) ...
[13.14]
- operator-- (prefix vs. postfix speed) ...
[13.15]
- operator= ...
[12],
[13.9],
[22.5]
- operator== (equality test operator) ...
[13.9],
[13.13]
- operator[] (subscript operator comes in pairs) ...
[13.9],
[18.12]
- operator[] (subscript operator) ...
[8.3],
[13.4],
[13.10],
[13.11],
[13.12]
- Promotion on the left hand side ...
[13.9]
- Purpose of operator overloading ...
[13.1]
- Rules of thumb for when and how ...
[13.9]
- Self-assignment ...
[12.1],
[12.2],
[12.3]
- Short-circuit operators ...
[13.9]
- Which operators can be overloaded ...
[13.5]
- Which operators should be overloaded ...
[13.8]
- Overloading
- Can't overload by return type ...
[39.9]
- const-overloading ...
[18.12]
- Public Overloaded Non-Virtuals Call Protected Non-Overloaded Virtuals Idiom ...
[23.3]
- Overloading and (see also under Templates) ...
[35.11]
|