From Java to C++
Introduction
Here at UWB, on the Seattle campus, and at several community colleges,
the beginning programming classes (often numbered 142/143 elsewhere)
are now being taught exclusively in Java. Our CSS 342/343 are taught in C++.
These notes are meant to help you make the transition from Java to C++.
The material covered here used to be taught in the CSS 332 course.
It is assumed you understand the basics of object-oriented programming,
typically Java.
Concepts in Java and C++ are similar, yet C++ has many messier language details.
These notes cover these language details. This material is meant to be used
for CSS 342, and is presented in a useful order for those courses.
Also, the material is example-based, meaning that it is taught through
the use of example programs.
It is not thorough in that some language details will not be covered here.
These can be found in a C++ language book. These notes cover material
on a need-to-know basis. The intention is that they will be as concise as
possible but still get the job done. Important language information
associated with inheritance and polymorphism is not covered here as it
is taught in CSS 343. If you find any errors, serious omissions,
or anything isn't "crystal" clear,
please email Carol Zander -- zander at u dot washington dot edu
To look up something specific, try
Frequently Asked Questions (FAQ)
For many sample programs used in some 342 sections, see
Example programs
For some sample inheritance programs used in some 343 sections, see
Example programs
If you need more than these notes, besides any decent C++ book,
some texts to aid transitioning you from Java to C++ include
C++ for Java Programmers, Mark Allen Weiss, Pearson/Prentice Hall
C++ for Java Programmers, Timothy Budd, Addison-Wesley
C++: Memory first, Adair Dingle & Tom Hildebrandt, Beedle & Associates Inc.
Preliminaries
    Language paradigms
    C++ Development/execution environments
   
Java vs. C++ architecture, and C++ memory model
    Miscellaneous things about C++
   
C/C++ data types, basic operators, and control structures
    Defining consts
    C++ I/O
   
Explaining end-of-file I/O
   
Static memory allocation and C/C++ arrays
   
C++ functions and pass by value vs. pass by reference
    Arrays as parameters to functions
    Template introduction
    Enumerated types
    Pointers
Object-oriented Programming
   
Structured and object-oriented programming in C++
    C++ classes and structs
Sample C++ class
    The Rational class header file
    The Rational class .cpp
   
Using Rational objects, sample driver
   
The Rational class -- a better version -- header file
   
The Rational class -- a better version -- .cpp
   
Using Rational objects -- better version -- sample driver
   
Member vs. nonmember operator overloading
    Const data member
Addressing and memory management in a class
   
Memory allocation and deallocation (in relation to OOP in C++)
   
The Array class -- header file
   
The Array class -- .cpp
   
Using Array objects -- sample driver
   
Using Array objects --
What happens if you don't write a copy constructor?
   
Why not just call the assignment operator from copy constructor?
More pointers and references
   
Revisit parameter passing (C way and passing pointers by reference)
   
Pointers and const: What's the const?
   
Pointers to functions
   
Pointer arithmetic
Miscellaneous topics
   
Information on using MS .net
   
Basic Unix commands