When you put

#include "something.h"

into your header file, all the compiler does is copy paste the contents of that header file into your header file. So, to prevent things from being included twice (e.g. I include something.h and you include something.h, and I also include you), we use header guards.

#ifndef RATIONAL_H
#define RATIONAL_H
	//class Rational declarationa dn related functions go here
	...
#endif