COP 4338 Lectures

Updated 3/29/2007

C++ Language

Basic C++

  • Slideshows and sample programs: simplest.zip
  • Comparing C++ to C
  • Basic input/output using iostreams
  • bool type
  • enum types
  • const parameter types
  • reference types and reference parameters
  • overloading functions and overload resolution
  • casting between types
  • strings
  • useful utilities: utils.cpp

Classes

  • powerpoint show (9/12/06)
  • examples (9/12/06)
  • Java/C++ differencew
  • defining classes
  • use of header and cpp files in classes
  • scope resolution (::) operator
  • member functions
  • inline function
  • implicit this pointer
  • overloading constructors
  • default parameter values
  • initializer lists
  • destructors
  • copy constructor
  • const member functions
  • static members
  • motors application, versions 1 and 2

IOStreams

  • iostream library with vector example
  • stream condition states
  • string streams
  • iostream format state
  • file I/O

Arrays and Pointers

ANSI C Programming

  • Creating a C program
  • basic structural and syntax differences from Java
  • structures
  • printf and scanf (stdio.h standard C library)
  • preprocessor directives
  • striing.h standard C library
  • conversion functions (atoi, atof, ftoa, toupper, tolower)
  • conio.h standard C library
  • dynamic allocation (malloc, release)
  • pointers to functions
  • macros
  • file I/O with fscanf and frpintf
  • Weiss/Irvine powerpoint show.
  • Program examples (WinZip file)

Exam 1: ANSI C and Beginning C++

Advanced C++

Inheritance and Polymorphism

  • inheritance slideshow and examples (10/2/06)
  • base class member access
  • base & derived class construction & destruction
  • abstract classes
  • virtual member functions
  • virtual destructors
  • RTTI, dynamic_cast<>, and typeid
  • exception handling and inheritance
  • multiple inheritance and virtual inheritance
  • public, private, and protected inheritance

Basic Containers

  • vector container type
  • list container type
  • iterators
  • sequence container operations
  • vectors slide show

Exception handling

Operator Overloading

  • operator overloading
  • friend keyword
  • overloading the << and >> operators
  • overloading various operators
  • overloading the conversion operator
  • Slide shows: operators,
  • Time example; StudentVector example

Function Templates

  • function templates
  • overloading function templates

Generic Algorithms

Advanced Java

Objects and Reflection

Proxies

Exam 2: Advanced C++ and Java Reflection

 

Threads & Synchronization

Networking

  • The slide show
  • Demonstrating the InetAddress class
  • Single-threaded echo server
  • Client that connects to the echo server
  • Multithreaded echo server
  • UDP time of day example
  • Reading a Web page; reading a pasword-protected Web page
  • Sending email
  • Sending datagrams
  • All example programs
Exam 3: Java Threads, Synchronization, and Networking