Course: CMPT-212 Object-Oriented Appl. Design in C++ [2008-1]
Instructor: Jan Manuch (jmanuch@sfu.ca)
TA:
Cong Wang (Carrie) (cwa9@sfu.ca)

 

Lecture notes

 

 

Lecture notes

Topics

Last update

 Examples

#1

Introduction

History of C++, Compilation, Sample program, Coding standards

Jan 10, 2008, 22:42

 link

#2

Basic types and operations

Basic types, Constants, Operations, Type Conversions, Type Casting

Jan 11, 2008,

 00:34

 link

#3

Control Statements

Conditional statements, Compound statements, Conditions, switch, Repetition statements (loops), break, continue

Jan 23, 2008, 10:01

 link

#4

Compound Types

Arrays, Structures, Unions, Pointers

 Jan 25, 2008, 9:52

 link

#5

Memory Allocation

Storage types, Dynamic memory allocation

 Jan 28, 2008, 8:48

 link

#6

Functions

Function call, void, Passing arguments by value, address and reference, Passing arrays, Passing structures, const, References, Returning from functions, Pointers to functions, Inline functions, Default arguments, Function overloading, Function templates

Feb 6, 2008, 0:21

 link

#7

Namespaces

Defining and accessing functions/variables in namespaces

Feb 6, 2008, 10:19

 

#8

Classes

Encapsulation, Separate compilation, Preprocessor, Classes and objects, private and public class members, Constructor, Object initialization, Default constructor, Destructor, const methods, this pointer, Class inline functions, Static class members, User-defined type conversions, Friend member functions

Feb 15, 2008, 13:40

 link

#9

Operator Overloading

Non-member and member operator overloading, Working with ostream, Classes using dynamic memory, Copy constructor, Assignment operator

Feb 18, 2008, 10:47

 link

#10

Public Inheritance

Public “is-a” class inheritance, Member initializer list, Constructor and destructor chaining, Upcasting, Static and dynamic binding, Virtual methods, Inheritance and dynamic memory allocation, protected class member, Abstract base class and pure virtual methods

Feb 22, 2008, 11:04

link

#11

Has-a Relationship

Containment, Private inheritance, Protected inheritance

Feb 22, 2008, 9:49

link

#12

Multiple Inheritance

Multiple inheritance, Virtual base class, New constructor rules for virtual base class

Feb 29, 2008, 8:56

link

#13

Class Templates

typedef, Class templates, Friends to class templates, Type requirements, Template parameters: type, expression and template, Template instantiations and specializations

Mar 3, 2008, 10:06

link

#14

Standard Template Library

Introduction to STL, Examples of containers, iterators, algorithms and function objects

Mar 10, 2008, 1:19

link

#15

Containers and Iterators

Container concept, Sequences concept, Sequences: vector, deque, list, Choosing a sequence container, Iterator concept, Hierarchy of iterators, Associative containers: set, multiset, map and multimap, Special iterators: reverse, stream and insert

Mar 14, 2008, 18:55

link

#16

Function Objects

Types of function objects: generator, unary function, binary function, unary predicate and binary predicate, Predefined functors, binder1st and binder2nd templates

Mar 14, 2008, 21:13

link

#17

Generic Algorithms

Types: non-modifying sequence algorithms, modifying sequence algorithms, sorting and related algorithms, numeric algorithms

Mar 19, 2008, 1:12

 

#18

Windows GUI Applications

Windows API, Windows GUI Application, WinMain(), “Window class”, Callback/Window procedure, Windows messages flow, Message loop, MFC Application, CWinApp class, Customizing main window, Message map

Mar 27, 2008, 12:14

link

#19

MFC Controls

MFC controls: CStatic, CMenu, CDialog, CEdit, CButton, CListBox, CComboBox, Resource files, Group boxes

Mar 31, 2008, 15:05

link

#20

More MFC Programming

Processing mouse and keyboard messages, Icons, Timers, Graphics, Scrolling

Mar 30, 2008, 23:31

link

#21

Exceptions

Throwing exceptions, Catching Exceptions, Safety of throwing exceptions, Rethrowing, Smart pointers, Qualifying the function headers, The exception class

Apr 4, 2008, 20:04

link

#22

Streams

Formatting (manipulators), Stream states, C-string stream, String streams, File streams

Apr 6, 2008, 19:32

link



General Information
Course Information
Assignments

Last modified: 06-04-2008 20:33