Difference between revisions of "cpp/language"
m (1 revision: import content) |
Revision as of 14:47, 6 June 2011
Template:cpp/language/sidebar This is a brief reference of available C++ constructs.
Contents |
General topics
Preprocessor
Keywords
ASCII chart
Escape sequences
Flow control
Conditional execution statements
Different code paths are executed according to the value of given expression
Iteration statements
The same code is executed several times
- for executes loop
- while executes loop, checking condition before each iteration
- do-while executes loop, checking condition after each iteration
Jump statements
Continue execution at a different location
- continue skips the remaining part of the enclosing loop body
- break terminates the enclosing loop
- goto continues execution in another location
- return terminates execution of the enclosing function
Functions
The same code can be reused at different locations in the program
- declaring functions
- exception specifications enforces the function to throw only specific exceptions or not to throw at all (deprecated)
- noexcept specifier enforces the function not to throw any exceptions Template:mark c++0x
- inline specifier hints the compiler to insert a function's body directly to the calling code
Exceptions
Exceptions are a more robust way to signal error condition than function return codes or global error variables
- throw expression signals an error and transfers control to error handler
- try-catch block catches exceptions originating from specific block of code
Namespaces
Namespaces provide a way to prevent name clashes in large projects
Types
- fundamental types define basic character, integer and floating point types
- compound types define types, holding several members of (potentially) different types
- function types define types, holding a pointer to a function
- decltype specifier defines a type, equivalent to the type of an expression Template:mark c++0x
Specifiers
- cv specifiers specifies constness and volatility of a type
- storage duration specifiers specifies storage duration of a type
- constexpr specifier specifies that the value of a variable or function can be computed at compile time Template:mark c++0x
- auto specifier specifies that the actual type shall be defined from the expression, assigned to the variable Template:mark c++0x
Operators
- operators allows the use of syntax commonly found in mathematics
Common operators | ||||||
---|---|---|---|---|---|---|
assignment | increment decrement |
arithmetic | logical | comparison | member access |
other |
a = b |
++a |
+a |
!a |
a == b |
a[...] |
function call |
a(...) | ||||||
comma | ||||||
a, b | ||||||
conditional | ||||||
a ? b : c | ||||||
Special operators | ||||||
static_cast converts one type to another related type |
- operator precedence the order in which operators are evaluated
- alternative representations alternative spellings for some of the operators
Utilities
- standard conversions implicit conversions from one type to another
- explicit conversions explicit conversions from one type to another
- new expression allocates memory dynamically
- delete expression deallocates memory dynamically
- typedef declaration creates a synonym for a type
- type alias declaration creates a synonym for a type
- attributes defines additional information about variable Template:mark c++0x
Classes
Classes provide the concept of object-oriented programming in C++
Special member functions
- default constructor initializes the object with default contents
- copy constructor initializes the object with the contents of another object
- move constructor initializes the object with the contents of other, temporary object, minimizing copying overhead Template:mark c++0x
- assignment operator replaces the contents of the object with the contents of another object
- move assignment operator replaces the contents of the object with the contents of other, temporary object, minimizing copying overhead Template:mark c++0x
- destructor releases claimed resources
Templates
Allows functions and classes to operate on generic types