In general what is seperate compilation in C++?

When one file needs to refer to another (e.g. LinkedList needs a NOde), what do we use to ensure that we can do this?

Specifically how do you use a guard when including items. What does it do?

What would intAtom.cpp look like for the following:


In general, how should you approach includes for both .cpp and .h files?

Why don’t guards solve all our include problems?
Every .cpp file is compuled separately into an object file and THEN they are linked together.
What is the solution to the include problem in C++?

For the attached code (which represents GenericList.h):


In C++ what is a forward reference and how do you make one?

In the attached code (in GenericList.h):
Why does class Node work?


What are good general rules for including/forward referencing?

When should you use #include?

When are other instanaces would you use forward references

In the included code, why use a forward reference to C2.


In the attached code, do we need the forward reference class ListItem. Why/Why not?


In terms of header files and source files, how does one create an Abstract class?

In general how do you compile with seperate compilation?

How do you compile each .cpp file seperately?

Once you have compiled each .cpp file seperately, how do you link them together to form an executable?

In general, what is the syntax for a Makefile?

How would you create a makeFile for the following files:


How should you handle static members in Seperate Compilation?

What are the 3 varieties strings come in, in C++?

How do you use type def in C++?
