The repo for my source codes for the CSI2372 cource (Advanced Programming Concept with C++) project 2016 in uOttawa, for which I got a full mark. Note that this is provided only as a learning resource, though the project contents might be different now and in the future. Nonetheless, you may still learn something from this and PLEASE do not copy any of my work. If you're caught with plagarism by the prof, it's your own besiness :)
It was tested and working on windows with Visual Studio 2015.
This project is to implement a simple card game on console with C++ and all the programming concepts learned in the class. Refer to the project description file for requirement details.
The main objectives of this project include at least the following:
- Object-Oriented Programming concepts (Encapsulation, Polymorphism and Inheritance), including virtual functions and abstract class.
- Pointers (including smart pointers), references and memory allocation (static/dynamic)
- Constructors (default/explicit), copy constructors (shallow/deep), copy assignment operator, and destructors
- Operator overloading
- input/output stream, including StringStream
- Function/class templates
- STL libraries (containers with their operations and algorithms, including iterators)
- Type resolving (auto/decltype) and casting (static/dynamic)
- Internal/external linkage
- Exception handling
- Constant expressions
- Factory pattern design
This is a challenging course, and the project has a large amount of work for a full-time CS student in university, and you're expected to devote yourself a lot on this. Wish everyone the best luck on this course.