|
|
Course - C++ Language
OOPS
- Software Quality factors (Robustness, correctness, portability etc)
- External and Internal quality factors
- Modularity, Reusability, Genericity and Overloading
- Road to Object Orientedness, Object Oriented philosophy
- Top down design method, Object Oriented design
- Steps towards Object oriented happiness
C++ Language Features
- History, Structure of a C++ program, Function prototyping
- C++ operators, Variable declaration
- Default argument functions, inline functions, inline v/s macros
- const declaration, const v/s #define, Variable references
- Function overloading, Default argument functions, extern "C" declaration
- References v/s pointers
- Memory allocation and deallocation using new and delete operators
- IO Streams, cout, cin and cerr objects
- Comparison of cout and cin with printf() and scanf()
C++ Class concept
- Data members and member functions (manager, accessor and setter functions)
- Access specifiers: public, private and protected
- Reference, static, const and pointer variables as data members
- Magic pointer (this). Operator overloading
- Default member functions: constructor, destructor, assignment operator and copy constructor
- Constant and static member functions. Interface and implementation
- Objects the instances of the classes, Object creation, accessing data members using objects
- Classes v/s objects. Array of objects and constant objects
- Class objects as members of other classes, initialization v/s assignment
- User defined constructor. Friend functions and friend classes
- Empty class, Overloading of new and delete operators etc.
- Account, complex, string example etc. would be discussed
- Type conversion
- Primitive to primitive : typecasting operators
- Primitive to user defined : constructor
- User defined to primitive : conversion operator
- User defined to user defined : constructor and conversion operators
.
Inheritance
- Base and derived classes
- What goes into derived class
Types of derivation : public, private and protected
- Function overriding, Overriding v/s overloading
- Inheritance v/s containment ('is a' and 'has a' relationship)
- Types of inheritance: single, multilevel, multiple, repeated
- Standard conversions between base and derived. Virtual derivations
Polymorphism
- Virtual functions, virtual table (Shape class etc)
- Polymorphism, Static and dynamic binding, runtime overheads
- Pure virtual functions, Abstract Base Class, Interface, Virtual destructor
- Multiple and Repeated inheritance, Role of virtual base class
- Int Vector, protected int vector, range int vector etc.
C++ File I/O
- ios, stream input - istream class, stream output - ostream class
- Built-in manipulator functions : endl, dec, hex, oct, ws, ends, flush, setw, setfill
- User defined manipulators. File input - ifstream class, file output - ofstream class
- opening and closing files: open() and close()
- Reading and writing to and from the file : read() and write()
- eof(), file pointers and their manipulators : seekg(), seekp(), tellg(), tellp()
- Streambuf class and filebuf class
Templates
- Function templates, template functions
- Class templates and template classes
- Overloading v/s templates
- Stack, Vector templates etc.
Exception handling
- Exception handling v/s traditional error handling
- Exception classes
- try, throw, catch keywords
Namespaces
- Namespace concept. Declaring and using them in applications. Namespace alias etc.
Cast Operators
- const cast, static cast, dynamic cast and reinterpret cast. RTTI (Run time type identification), Building application using RTTI.
STL
- Introduction to STL (Standard Template Library): list, stack, deque, vector, map etc. Building applications using these classes.
|
|