Moving towards C to C++
- Data Types
- Operators
- Keywords and naming identifiers
- Hungarian Notation
- Comments
- Control Flow Statement
- Preprocessor
- Header files
- Blocks and Storage Classes
- Arrays, Strings, Pointers
- Typedefs
- Structs
- Command Line Arguments
Graduating to C++ (Beginning)
- Basic object-oriented programming
- Oops Concepts
- Typecasting
- Void Pointers
- The :: operator
- The Const Qualifier
- Reference variables
Functions
- Function Prototypes
- Function Overloading
- Default Arguments in Functions
- Call by value, address & reference
- Return by value, by address & By reference
- Inline Functions
- Function pointers
- The stack and the heap
- Recursion
- Handling errors (assert, cerr, exit, and exceptions)
- Ellipses (and why to avoid them)
Classes in C++
- Member function
- Function Definition Outside The Class
- Classes and Constructors
- Destructors
- Copy Constructor
- The “this Pointer”
- New and delete Operators
- Using new and delete
- Malloc ( ) / free ( ) versus new/delete
- Classes, Objects and Memory
- Structures vs. Classes
Operator overloading
- Introduction
- Overloading assignment operator
- Overloading ++, --, +, -, *, /,<,> …. & Logical operators
- Overloading operators between different objects
- Overloading << and >> (stream operators)
- Shallow vs. deep copying
Inheritance
- Introduction to inheritance
- Early binding and late binding
- Constructors in Inheritance
- Functions That Are Not inherited
- Virtual Function, Pure virtual functions
- Virtual Functions in Derived Classes
- Virtual Functions and Constructors
- Destructors and virtual Destructors
- Virtual Base Classes
- Abstract class
- Abstract base class
- Virtual functions
- Virtual destructors
- The virtual table
Miscellaneous Class Issues
- Static Class Data
- Static Member Functions
- Const class objects and member functions
- Data Conversion
- Friend functions & friend Classes
- Data Conversion between Objects of Different Classes
Composition
- Constructor initialization lists
- Composition
- Aggregation
- Container classes
Exceptions
- The need for exceptions
- Basic exception handling
- Exceptions, functions, and stack unwinding
- Uncaught exceptions, catch-all handlers, and exception specifiers
- Exceptions, classes, and inheritance
- Exception dangers and downsides
New Advanced Features
- Templates
- Function templates
- Class templates
- Namespaces
- RTTI (Runtime type information)
- STL (Standard Template library)
- Dynamic cast operator
- Typeid operator
Input / Output In C++ (File operations)
- Input with istream
- Output with ostream and ios
- Stream classes for strings
- Stream states and input validation
- Basic file I/O
- Random file I/O
Data Structures with C++
- Sorting
- Lists
- Single linked lists
- Double linked lists
- Circular linked lists
- Traversing of linked lists
- Stacks
- Queues
- Adding 2 lists
- Inserting, Deleting a node in required position
|