- Nume proiect (îl puteți schimba ulterior)
- Scurtă descriere a temei alese, ce v-ați propus să implementați
- definirea a minim 3-4 clase folosind compunere
- constructori de inițializare
- pentru o clasă: constructor de copiere,
operator=
de copiere, destructor
-
operator<<
pentru toate clasele - cât mai multe
const
- implementarea a minim 3 funcții membru publice pentru funcționalități specifice temei alese
- scenariu de utilizare a claselor definite: crearea de obiecte și apelarea funcțiilor membru publice în main
- tag de
git
: de exempluv0.1
- serviciu de integrare continuă (CI); exemplu: GitHub Actions
- separarea codului din clase în
.h
(sau.hpp
) și.cpp
- moșteniri
- funcții virtuale (pure) apelate prin pointeri de bază, constructori virtuali (clone)
- apelarea constructorului din clasa de bază
- smart pointers
-
dynamic_cast
- suprascris cc/op= pentru copieri/atribuiri corecte, copy and swap
- excepții
- ierarhie proprie cu baza
std::exception
sau derivată dinstd::exception
- utilizare cu sens: de exemplu,
throw
în constructor,try
/catch
înmain
- ierarhie proprie cu baza
- funcții și atribute
static
- STL
- cât mai multe
const
- la sfârșit: commit separat cu adăugarea unei noi derivate
- tag de
git
: de exempluv0.2
- 2 șabloane de proiectare (design patterns)
- o funcție șablon (template) cu sens; minim 2 instanțieri
- o clasă șablon cu sens; minim 2 instanțieri
- tag de
git
: de exempluv0.3
sauv1.0