C++ FAQ
Welcome to the C++ Super-FAQ!
What’s “Super” about this FAQ? In part it’s because this is a merger of two great FAQs: Marshall Cline’s C++ FAQs, and Bjarne Stroustrup’s C++ FAQ. And in part it’s because this is a wiki being continuously updated for modern C++. There are some FAQ topics not yet updated; if you spot one, suggest an improvement using the link on the bar for that FAQ.
We would like to gratefully acknowledge Pearson Education (Addison-Wesley), Marshall Cline, Bjarne Stroustrup, Herb Sutter, and Andrei Alexandrescu for launching this FAQ by freely contributing the contents of Marshall Cline’s online C++ FAQ Lite, Bjarne Stroustrup’s online C++ and C++11 FAQs, and in the near future material from their books C++ FAQs Second Edition by Marshall Cline, Greg Lomow, and Mike Girou, and C++ Coding Standards by Herb Sutter and Andrei Alexandrescu.
C++ FAQ Sections
Overview Topics
- Big Picture Issues
- Newbie Questions & Answers
- Learning OO/C++
- Coding Standards
- User Groups Worldwide
- Conferences Worldwide
- Community Events Calendar
Starting From Another Language
- Learning C++ if you already know Objective-C
- Learning C++ if you already know C# or Java
- Learning C++ if you already know C
- How to mix C and C++
General Topics
- Built-in / Intrinsic / Primitive Data Types
- Input/output via
<iostream>
and<cstdio>
- Const Correctness
- References
- Memory Management
Classes and Inheritance
- Classes and Objects
- Constructors
- Destructors
- Assignment Operators
- Operator Overloading
- Friends
- Inheritance — Basics
- Inheritance —
virtual
functions - Inheritance — Proper Inheritance and Substitutability
- Inheritance — Abstract Base Classes (ABCs)
- Inheritance — What your mother never told you
- Inheritance —
private
andprotected
inheritance - Inheritance — Multiple and Virtual Inheritance
Beyond Classes
- Templates
- Container Classes
- Class Libraries
- Exceptions and Error Handling
- Reference and Value Semantics
- Inline Functions
- Pointers to Member Functions
- Serialization and Unserialization
C++11
- C++11 Overview
- C++11 Language Extensions — General Features
- C++11 Language Extensions — Classes
- C++11 Language Extensions — Other Types
- C++11 Language Extensions — Templates
- C++11 Language Extensions — Concurrency
- C++11 Language Extensions — Miscellaneous Language Features
- C++11 Library Extensions — General Libraries
- C++11 Library Extensions — Containers and Algorithms
- C++11 Library Extensions — Concurrency
C++14
Miscellaneous Q&A
- Compiler Dependencies
- Miscellaneous Technical Issues
- Miscellaneous Environmental Issues
- Miscellaneous Style Issues
- C++0x Concepts — Historical FAQs
- Myths and Urban Legends About C++
- Partial List of ISO C++ Committee Members