okay, I've got three files. book.h (header for class Book), book.cc (implementation for class Book), and main.cc (application file). I'm including book.cc in book.h and book.h in main.cc. but for some reason it's not working at all. it doesn't recognize Book as a class and everything is undefined. it works if I include the header in the implementation then the implemenation in the main, but that defeats the point of the class doesn't it? here's what it looks like:

That is correct. It is the linker, not the compiler that is screaming at you. Compile book.cc (now it will create a book.o or book.obj, or some other object file -- extension dependent on compiler). Now compile and build main.cc.