-
Linux commands for use on our Fedora Linux server
storm.cis.fordham.edu.
- Basic
commands
- Shellscript
to compile a C++ program
-
Review
of CISC-1600.
This is what we assume you already know.
- Memory addresses and pointers
-
Binary
(base 2)
and hexadecimal
(base 16) notation for an integer or a memory address.
A memory address is usually written in hexadecimal.
-
A
pointer
is a variable that contains the address
of another variable.
The value of a pointer is therefore usually written in hexadecimal.
-
Dynamic
memory allocation with the operators
new
and
delete[].
-
Allocate a block of memory to hold an array
with an unpredictable number of elements.
-
Throw and catch an exception
when something goes wrong.
-
We can often use a
vector
instead of making a pair of direct calls to
new
and
delete[].
-
Preprocessor implements directives such as
#include
#define
-
#ifdef/#endif
and
#ifndef/#endif
for conditional compilation.
We will need these directives
when writing a header
(.h)
file for a class or a template.
-
Classes of objects.
-
The components of a class
- data members vs. member functions
- public members vs. private members
- constructors vs. destructor.
(A class might have more than one constructor,
but it can have only at most one destructor.)
-
header
(
.h)
file vs. implementation
(.C)
file
-
miscellaneous features:
static data members,
static member functions,
friend functions
-
Now that the data members are private,
we can re-implement a class (class
date)
in different ways without disturbing the rest of the program.
- Class
date with two non-static data members
- Class
date with one non-static data member
-
Member functions vs. friend functions:
two ways to give a function acces sto the private members of a class.
-
Use an object to trigger a pair of events:
class
announcer.
-
More examples of classes:
class
point,
class stack,
class myrandom.
-
Midterm.
-
The
big ideas
of CISC-2000:
a midterm review.
-
The
midterm
itself.
-
Prerequisites
for operator overloading.
Small, miscellaneous topics that we will need.
-
Operator Overloading.
-
For convenience,
we’ll implement the output operator
<<
first.
-
Operators that change the value of an existing object:
+=,
prefix
++.
-
Operators that construct and return a new object:
binary
+,
postfix
++.
-
Operators that use the value of a two existing objects
are implemented as friends:
binary
-,
==.
<.
-
The input operator
>>.
-
The difference between a copy constructor (simple) vs. an
operator=
(complicated).
-
An operator for an object that contains a series of values:
[]
-
An operator for an object that does only one job:
()
-
Inheritance
and polymorphism.
Inherit the Wind.
- Single inheritance and polymorphism with virtual member functions
- Abstract base classes and pure virtual functions
- Multiple inheritance and virtual base classes
- Public inheritance vs. private inheritance
-
Gateways and CGI programming
-
Templates.
- Template functions
- Template classes
- Container classes:
vector,
list,
map.
- Hide the name of a template class with the
using
keyword.
-
Final examination