TDDD38 Advanced Programming in C++
Theory questions and programming exerciser are for learning C++, to preparing for the computer exam, and sis upposed to be carried out in scheduled labs and during home work. How the programming exerciser are related to the lecures is described below, and you should keep with this plan to be prepared for following lectures and in the end the exam.
Examples of theory questions are given to ease such studies. No answers are given!
Mixed exercises smaller exercises relate to material covered by all seminars (For seminar 1: basic language constructs, statements; for seminar 2: class, overloading, type conversion; for seminar 3: derivation, exceptions).
Aggregates and List initialization some parts suitable for seminar 1, some for seminar 2
Smart pointer suitable for seminar 2
Geometric objects suitable for seminar 3
Policy-based Class Design for Smart Pointers suitable for seminar 4
The Curiosly Recurring Template Pattern (CRTP) suitable for seminar 4
Character Traits suitable for seminar 4
Container Design suitable for seminar 5
Fixed Size Container suitable for seminar 5
Indexable Set suitable for seminar 5
Ordered List Iterators suitable after seminar 5
Insertion Techniques standard library, suitable after seminar 5 (new 2015-02-16)
Standard Library mixed standard library exercises, suitable material for STL seminars
See also previous exams.
Tracer - a class with a default constructor, copy constructor, copy assigment operator, and destructor, which prints trace messages, allowing for following object creation, copying, and destruction.
demangle() a function to do "name demangling", i.e translate (demangle) a name used internally by g++ (mangled name) for, e.g., a type name, back to the actual name. Demangle takes a std::type_info object as argument, calls std::type_info::name(), which will return the mangeled name, and give this mangled name to the implementation supplied function __cxa_demangle(), which does the demangling.
Page responsible: Eric Elfving
Last updated: 2016-01-22