For continuation you can look at the Previous Blog: Link

As I already told, #include is the pre-processor directive, and the compiler will replace the content of header file before processing the cpptest.cpp. When it does, the file looks like as shown below (I am skipping the stdafx.h, conio.h):

int Add_Numbers(int, int);

int Mult_Numbers(int, int);

int Add_Numbers(int a, int b)

{

return (a + b);

}

int Mult_Numbers(int a, int b)

{

return (a * b);

}

int Add_Numbers(int, int);

int Mult_Numbers(int, int);

int Add_Numbers(int a, int b)

{

return (a + b);

}

int Mult_Numbers(int a, int b)

{

return (a * b);

}

int Add_three_numbers(int, int, int);

int Add_three_numbers(int a, int b, int c)

{

return ( Add_Numbers(a, b) * c );

}

int _tmain(int argc, _TCHAR* argv[])

{

return 0;

}

The first set of code in red color is the content of simplemath.h

The second set of code in Green Normal font style is also the content of simplemath.h (Note that extendedmath.h includes the simplemath.h)

The stuff is green bold is actual content of the extendedmath.h

The final Red bold text is original content of the CPP file.

Now once all the #include statements are replaced, the compiler will check & return an error. Now, I no need to explain that error, as you can understand it yourself.