kimhxsong / cpp-modules

Introduction to the object-oriented paradigm in CORE CPP.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CPP Modules

Introduction to the object-oriented paradigm in CORE CPP.

Some of the general rules

For the C++ modules, you will use and learn C++98 only

  • Any function implemented in a header and any unprotected header mean 0 to the exercise
  • The following function are FORBIDDEN: *alloc, *printf, free
  • Every output goes to the standard output and will be ended by a newline
  • The C++ keywords "using namespace" and "friend" are FORBIDDEN.
  • Files associated with a class will always be ClassName.hpp and ClassName.cpp, unless specified otherwise.
  • Not allowed to use the STL
  • Compiler to use: c++
  • Compiler options: -Wall -Wextra -Werror
  • Includes must contain every other includes they are depending on

Coding Style Guide

Reference

Study Materials

Lesson

  • LEARN C++ - A free website devoted to teaching you how to program in C++
  • Chewing C++ - 모두의 코드 씹어먹는 C++ 강좌

Books

Unit testing framework

  • Criterion - A cross-platform C and C++ unit testing framework for the 21st century
  • GoogleTest - Google Testing and Mocking Framework

Reference


Module 00

Theme

The specifities of the language when compared to C

  • namespace
  • class
  • member functions or Method
  • stdio stream
  • Initialization lists
  • static
  • const and lots of basic stuff

Module 01

Theme

  • Memory allocation
  • References
  • Pointers to members
  • switch

Module 02

Theme

  • Ad-hoc polymorphism
  • Operators
  • Overloads
  • Orthodox canonical classes

Module 03

Theme

  • Inheritance

Module 04

Theme

  • Subtype polymorphism
  • Abstract classes
  • Interfaces

Module 05

Theme

  • Try/Catch and Exceptions

Module 06

Theme

  • Type casting

Module 07

Theme

  • Templates

Module 08

Theme

  • Templated containers
  • Iterators
  • Algorithms

About

Introduction to the object-oriented paradigm in CORE CPP.


Languages

Language:C++ 87.8%Language:Makefile 10.9%Language:Shell 1.2%