This document provides an overview of key concepts in C++ including:
- Similarities and differences between C and C++ and how that impacts language selection
- Common C++ concepts like namespaces, functions, variables, statements, and data types
- Object-oriented programming principles in C++ like encapsulation, inheritance, and polymorphism
- Additional C++ features like templates, the standard template library (STL), streams, and exceptions handling
The document is intended as a high-level introduction and reference for C++ concepts.
2. C++ is based on and an extension to C
Knowing similarities and dissimilarities between C
and C++ will help
to select the right language for your application
development
3. Comments:
Header File: #include <iostream>
Namespace: A defined collection of symbols and
variable names within an application
The main () function: must have in a program
Parentheses: A function/code block name is followed
by Parentheses ()
Braces: Boundary of code blocks
4. Variables: Used to contain values. Think about
variables in Mathematics
Statements: An instruction to the computer hardware
to perform specific action.
Statement Terminator: a semicolon
Function calls:
One function can call another function.
It's just a transfer of control from one code block to
another code block.
However, the control comes back to the caller again.
5. #include <iostream>
using namespace std;
int main() {
int studentId;
count << "what is your student ID" << endl;
cin>> studentId;
count << "Student Id " << studentId << endl;
}
6. A C++ program must have a namespace;
C program ends with .c
where C++ program ends with .cpp
Information communication to and from c program is
treated as stream.
cout and cin are used for the purpose
cout and cin are practically objects
7. To store values
case sensitive
must start with letter
Supportted datatypes: char, int, float, double, boolean,
wchar_t
float: usually 32 bits - 6 digit after decimam,
double: 64 bits - 10 digit after decimal,
8. Can be declared anywhere
Local:
inside functions
Static:
Inside functions but do not get destroyed after
Global:
Declared outside the functions
can be accessed from anywhere in the program
Formal/Parameter
Hidden variable:
if a local variable use the same name of a global variable the local
variable = hidden variable
use scope operator :: to access the global variable inside that
function
9. Group of variable
A group of variables of the same type
in c strings are null terminated arrays
C++ also supports a predefined string class/data type;
include <string>
10. in c, define XYZ 100
in c++, const int val=1000
11. Enables Code Resuse
Enables Data Security from Unauthorized Access
Object:
Attribute + behaviors
Primary OOP Concepts
Encapsulation:
Inheritance:
- reduce development time
- reuse
-increase maintainability of the code
Polymorphism:
assign different uses to an entity based onthe context
Abstraction:
simple representation of an objet.
hide not essential attributes and behaviors
13. C++ Compliers Must Support: ANSI Standard
Internationalization
Template
Locales
Namespaces
14. Friend Class
Friend functions and inline functions provide faster, and
efficient application
A function can be friend to any number of functions
Use function declaration to declare friend functions
Static Data Members and Static Members
Function - create the common members of classes
(across objects)
15. Constructor
no return types
called at object creation
Destructor
no return type
16. Operator Overloading
Compile time polymorphism
runtime poly
- inheritance
virtual functions
Operator Overloading:
-unary
-binary
-arithmetic
-assignment
Note: C++ does not support overloading based on return
type
20. Mode of file opening
ios::in
ios::out
Sscanf
Read formatted file data
ifstream
fin.getLine()
Random File Reading
seekg
seekp
21. I/O System
Buffered file system
Stream classes
stream
istream--_IO_istream_withassign
ostream
Iostream
Cin is an instance of _IO_istream_withassign
Instance of _IO_ostream_withassign
cout
cerr
22. Stream formatting flags
Can be used with setf(), unsetf()
ios::left
ios::dec
ios::fixed
ios::oct
ios::right
ios::scientific
ios::showbase
ios::showpoint
ios::showpos
ios::uppercase
23. Unformatted input/output
character
character array
strings
use text buffer
Can provide abstraction of the I/O device
functions for unformatted input and output
cin.read()
cin.gcount()
cout.write()
25. Handling Exceptions
runtime errors
Exceptions
try and catch block
throw statement
Uncaught Exceptions
Multiple Catch
----------
identified by operating systems
if not handled passed to op system exception as int, char ,class strings
how it passes through functions
Derived Class Exceptions
catch block hierarchy
place derived classes catch up
26. runtime with virtual functions
shape
-draw
rect
tri
define overriding by placing function in each
Show why virtual function needed?
virtual base
pointer runtime polymorphism
pure virtual function
Late binding
base point to base - call derive function - runtime-dynamic
27. Templates create reusable code
STL provides some foundational items
--templatized functions and
--classes
These can be used to solve a variety of problems
Some STL Elements
Containers
Algorithms
Iterators
STLs are compatible across operating systems
29. Algorithms
function templates work with container templates of any type
algorithm header file
Iterators are objects to cycle through the containers
iterator header file needs to be included if iterators are used
Iterator type:
Random Access
Bidirectional
Forward
Input
Output
30. Vector and Array Comparison
container - behave the same way - infinite
33. Working with Templates
Imagine a situation - complex + many data type
Overload may help but time consuming
template can help
object creation define data type
template overloading