Course Outline
Introduction and Overview Course Information
-
Relating C, C++, Java, and C#
-
The in-class development environment
-
Other development environments
C++ Programming Building Blocks
The main function and standard I/O
- Displaying values and strings to cout
- Reading values from cin
- Formatting with stream manipulators
Objects, constants, and references
- Declaring and initializing variables
- Utilizing C++ 11/14 new keywords
- Integer and floating-point data types
- Performing calculations and displaying results
- Utilizing references for efficiency and constants for safety
Defining and calling functions
- Passing arguments to functions and returning values from functions
- Call-by-value vs. call-by-reference vs. call-by-address
- Scope, duration, and initial values variables
Decisions, loops, and logic
- Making decisions with if/else
- bool vs. int logical values
- if/else statement "chains"
- Performing loops with while and for
- Implementing C++ range-based for loops
- Equality, relational, and logical operators
Arrays, pointers, and strings
- Declaring and using arrays and pointers
- Storing strings in character arrays
- Accessing array elements via pointers
- Pointers vs. references
- Standard string class and functions
Defining C++ Classes and Objects
Encapsulating higher-level data types
- Public member functions and private data members
- Protected class members
- Constructors and destructors
- Self-reference: the this pointer
- The class member operator (::)
Declaring, accessing, and modifying objects
- Manipulating arrays of objects, pointers to objects and references to objects
- Invoking member functions
- const member functions
- Passing objects by value and by reference
Overloading and templates
- Simplifying class interfaces
- Function signatures
- Overloading assignment (=) and insertion (\<\<)
- friend functions and classes
- Explicit copy/move construction
- Avoiding default assignment and copy construction
- Utilizing STL templates to define families of classes
Separating interfaces and implementations
- How separation supports code reuse
- Building header files and code files
Extending Classes via Inheritance
Deriving new classes from existing classes
- Construction and destruction of derived objects
- Reusability via incremental extensions
- Base classes and derived classes
Utilizing polymorphic functions
- Overriding virtual base-class member functions in derived classes
- Runtime lookup of functions through base-class pointers and references
Managing dynamic data
- Allocating and deallocating memory with new and delete
- Handling errors with try and catch
- Avoiding memory leaks
- Utilizing lambdas and smart pointers
Standards and Portability
- Applicability to Windows and UNIX/Linux
- ANSI/ISO C++ 11/14 and evolving standards
Requirements
Testimonials (6)
I was able to learn tbe basics of C programming and have something to build upon.
Patrick Hensley - Roush Industries
Course - Programming in C
The exercises whit which we were able to familiarise with the TDD
Csongor Benedek - ACCENTURE
Course - Agile and TDD with C
the exercises and the methodology
Javier MIllan Rios - si
Course - Advanced C Programming
A large amount of practical knowledge shown in real-life examples.
Kamil - Streamsoft Kraków
Course - Java Advanced
Machine Translated
Pushing changes on an ongoing basis, when on the 3rd day I started to get more lost than before and it was harder to spot the error quickly, I was quickly able to check out the latest changes and stay up to date with the material
Paulina
Course - Advanced Java Security
Machine Translated
Very good knowledge and character.