Introduction to the object-oriented paradigm in CORE CPP.
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
- Google C++ Style Guide
- Chrominum C++ style guide
- Unreal Engine 4.27 Coding Standard
- Pope Kim's C++ Coding Standards
- LEARN C++ - A free website devoted to teaching you how to program in C++
- Chewing C++ - 모두의 코드 씹어먹는 C++ 강좌
- Expert C Programming: Deep Secrets | 컴파일러 개발자가 들려주는 C 이야기
- Programming: Principles and Practice Using C++ (2nd Edition)
- A Tour of C++
- Criterion - A cross-platform C and C++ unit testing framework for the 21st century
- GoogleTest - Google Testing and Mocking Framework
- cppreference.com - A complete online reference
- Wikipedia
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
- Memory allocation
- References
- Pointers to members
- switch
- Ad-hoc polymorphism
- Operators
- Overloads
- Orthodox canonical classes
- Inheritance
- Subtype polymorphism
- Abstract classes
- Interfaces
- Try/Catch and Exceptions
- Type casting
- Templates
- Templated containers
- Iterators
- Algorithms