Programming in C++

• High­level programming languages, compilation process
• Obtaining the machine code: compilation process
• First C++ program
• Introduction to G++ compiler.
• Variable, integers: values, literals, operators
• Characters: values, literals, operators
• Floating point types: values, literals, operators
• Dealing with streams and basic input/output operations

Flow control and more data types
• How to control the flow of the program?
• More integral types: values and literals
• Loops and controlling the loop execution­ for, while, do­while
• Logic, bitwise and arithmetic operators

• Functions: why do you need them?
• Declaring and invoking functions
• Different methods of passing parameters and their purpose
• Default parameters
• Inline functions
• Overloaded functions

Accessing data
• Converting values of different types
• Strings: declarations, initializations, assignments
• String as the example of an object: introducing methods and properties
• Namespaces: using and declaring
• Exception handling

Fundamentals of the object­oriented approach
• Class: what does it actually mean?
• What is objects?
• Class components
• Constructors
• Referring to objects
• Static members
• Classes and their friends
• Defining and overloading operators

Class Inheritance
• Base class, superclass, subclass
• Inheritance: how does it work?
• Types of inheritance
• Inheriting different class components
• Multiple inheritance

Classes – continued
• Polymorphism: the notion and the purpose
• Virtual methods: declaring and using
• Inheriting virtual methods
• Abstraction and abstract classes

• What is an exception?
• Catching and throwing exceptions
• Different classes and hierarchy of exceptions
• Defining your own exceptions

• What is a template?
• Function Template
• Class Template