🧮 a project in the course TDDC76
I detta miniprojekt ska du använda tidigare kunskaper och lära dig̣ nya. Koncept som har fokus i varje del har fet stil. Nedan följer en sammanfattning för respektive del:
• Del 1: Inläsning av postfix
– Formaterad inmatning (<<)
– Formaterad utmatning (>>)
– std::istringstream och std::ostringstream
– std::string::size, std::string::find, std::string::npos
– std::all_of, ::isdigit (:: avser den isdigit som ligger i global namnrymd) – std::stoi
– std::stack
• Del 2: Uppbyggnad av träd, utskrift av träd och beräkning av träd
– std::stack<trädnodpekare>
– Klasser och konstruktorer
– Pekare och dynamisk minne (new) – Arv (specialisering)
– Polymorfi (virtual och override)
– Abstrakta klasser (pure virtual)
– Rekursiv traversering av träd
• Del 3: Fler operander, operatorer och hantering av parenteser, inläsning av infix
– std::stod
– Dynamisk typkontroll (dynamic_cast)
• Del 4: Uttrycksklass för minneshantering och enkel hantering av uttryck
– Pekarhantering och minneshantering (new, delete)
– Verktyget valgrind
– Destruktorer (automatisk hjälp för resurshantering efter RAII)
– Kopieringskonstruktor (djup kopiering till nytt tomt objekt)
– Kopieringstilldelning operator=(const&) (djup kopiering till befintligt objekt) – Flyttkonstruktor (effektiv flytt till nytt tomt objekt)
– Flyttilldelning operator=(&&) (effektiv flytt till befintligt objekt)
• Del 5: Variabler, tilldelning och delberäkning
– Pekarhantering och minneshantering (delete) – Dynamisk typomvandling (dynamic_cast)