Lecture 2 - Page 19 : 42
Notes about C++
Basic facilities
Basic facilities
Fundamental types i C++
Booleans
Structs in C++
Declarations and definitions
The structure of a declaration
Declaring several names together
Declarations as statements - declarations in conditions
Constants
The general notation of objects in C++
Lvalues
C-style strings
C++ style strings
Strings - examples
References
Rules for references
References - Examples
Constant References
References versus Pointers
Parameter passing in C++
Value return
Type conversion - Grand Overview
Implicit type conversions
Explicit type conversion
Function Overloading
Function Overloading - more detailed rules
Function Overloading - Examples
Vectors in C++
Vectors - examples
The free store
Input and output in C++
Overloaded operators and IO
Standard streams
Stream State
Manipulators
More manipulators
Logical program organization
More namespaces
Physical program organization
Example of program organization
The standard library namespace
Point Exercise - C++ versus C#
References versus Pointers
Examples that compare programming with pointers and C++ references
Two versions of swap - with references and with pointers.
Observations
The notational overhead - use of
&
and
*
- is less for use of references than for pointers
The reason is that it is not possible to manipulate the reference as such
The mental models are different
Pointers: Establish pointer to an object, follow the pointer to the object for lhs/rhs access
References: Establish an alternative name to an existing object
A reference may be implemented as a
constant pointer
that is dereferenced automatically each time it is used