Topics


Software Engineering Object-Oriented Programming in C++ Design Patterns
pair programming
unit testing (GTest)
acceptance testing
memory checker (Valgrind)
source control (Git, GitHub)
issue tracking (GitHub)
documentation (Doxygen)
UML (Gliffy, yUML)
assertions, exceptions
built-in and user-defined types
consts and final
stack and heap
allocators and garbage collection
control structures
classes
canonical class form
compiler-generated methods
static and non-static data and methods
const methods
copy and assignment
abstraction and encapsulation
interface and implementation
containers and iterators
association, aggregation, and inheritance
refinement and replacement overriding
compile-time and run-time polymorphism
static and dynamic binding
virtual function tables
covariance and contravariance
abstract methods, classes, and interfaces
smart pointers
Boost pointers
auto_ptr
multiple inheritance
virtual base classes
singleton
decorator
factory method
abstract factory
builder
prototype