How to have two header files contain each other to use the others' class

When 2 .h files are trying to use classes in each other, an error will occur if no special treatment is applied:

 syntax error : identifier "class_name"
It seems like the compiler identify the class as an identifier. I tried to use macro commands like the following
#ifndef PACKAGE
#include "Package.h"
#define PACKAGE
#endif
==But failed.== With the help of this [passage](http://www.bijishequ.com/detail/149692?p=), I found a way to solve it. A class in C++ can be first declared and then defined like this:
class class_name;//this is a declaration.
class class_name{
    Content contents;
};//this is a definition

So by putting only the declaration of classes in the header files or by putting another declaration of the class before use, it is made possible for this problem to be solved.