This ~4hr workshop will build on the previous C workshop and introduce the features that C++ adds.
Prerequisites
- Previous C workshop in the series.
- You are very strongly encouraged to have a Compute Canada account, see setup
Day 1 | 12:00 | Introduction |
What will we do in this course?
Are we ready? |
12:05 | Where does C++ fit in? |
How does C++ compare to other languages?
What is C++’s relationship to C? |
|
12:10 | First C++ program | How do you create a C++ program? | |
12:20 | Memory |
How do I allocate memory?
How do I free memory? |
|
12:50 | A first class |
What is a class?
How do you create a class? How do you do use a class? |
|
13:05 | Break | Break | |
13:15 | Class member functions |
What is a class member function?
How do you create a class member function? How do you call a class member function? What data can class member functions access? |
|
13:35 | Function overloading |
What is function overloading?
What is the ‘this’ keyword? |
|
13:45 | Constructors and destructors |
Can class members be automatically initialized?
Are there different types of constructors? Can resources be automatically freed? |
|
14:05 | Operator overloading |
Can we define operators for our classes?
Where can you define operators? What operators can we define? Does the order matter? |
|
14:20 | Break | Break | |
14:30 | Inheritance |
What is inheritance?
What is inheritance used for? |
|
14:45 | Virtual functions |
What is a virtual function?
What is polymorphism? |
|
15:00 | Abstract classes |
What makes a class abstract?
What are abstract classes used for? |
|
15:15 | Break | Break | |
15:25 | Using templates |
What are templates?
What is generic programming? What is the STL? How do you use the STL? |
|
15:40 | Making templates |
How do you use templates to create generic functions that work with any type?
What is a template parameter? |
|
15:55 | Wrapping up |
What else should I learn?
Where can I learn it? |
|
15:57 | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.