Where should I include other header files, in header file or source file? What is the difference between the below two:

Code:
//file1.h
#include "file2.h"
...


OR



Code:
//file1.h
class class2; //class class2 is in file2.h
...
Code:
//file1.cpp
#include "file2.h"
...
Both seem to work bu which version is better? Or at least preferred? Does the first version (may) have bad consequences?