hi,
i just start using header file and i have some questions, do you guys know where i can find a good tutorial about header file?
#include "whatever.h" do you find this line in other .h file? or those include only fit in .cpp?
doing that i end including nearly all my .h in all my .cpp, i don''t think this is the best solution..
thanks for your help..
header files are xactly the same as normal souce files xcept for a few diferences they usally just contain data type defintions and new frequently used funcitons. one thing u shoudl do is at the geigin of ure file do
#define "thenameofureheader.h"
#ifndef
put ure code here
#endif
this stop the code from being added twice into ure main file ie
#include "myheader.h"
#include "myheader.h" //will cause errors
void main()
{
}
~prevail by daring to fail~
#define "thenameofureheader.h"
#ifndef
put ure code here
#endif
this stop the code from being added twice into ure main file ie
#include "myheader.h"
#include "myheader.h" //will cause errors
void main()
{
}
~prevail by daring to fail~
I don''t want to take away from what -Zerosignull- was saying, but considering that -marvano- isn''t even clear on how header files work, I feel I should help to explain it in more detail.
There are basically 2 types of files used in C/C++:
1.) header files (.h)
2.) implimentation files (.cpp)
Header files prototype the classes/functions/structures/etc that are contained within the implimentation file.
The implimentation file contains the code for the things that were prototyped in the header file.
For example:
---myprogram.h------------------------------------------
#ifndef _MYPROGRAM_H
#define _MYPROGRAM_H
//None of this will be included if
//_MYPROGRAM_H has already been defined.
int drawPoint(int x, int y);
char * getName();
#endif
--------------------------------------------------------
---myprogram.cpp----------------------------------------
#include "myprogram.h"
int main()
{
int i = drawPoint(7, 43);
//more code here.
return 0;
}
int drawPoint(int x, int y)
{
//This is the implimentation of my drawPoint function.
}
char * getName()
{
//This is the implimentation of my getName function.
}
--------------------------------------------------------
...what good is all of this? It illustrates what -Zerosignull- was saying about "stop the code from being added twice".
Header files are expanded into the implimentation file at compile time. Adding the #ifndef and #define in the header file tells the compiler to ignore everything up to the #endif (ignore it if _MYPROGRAM_H has been defined), thus preventing multiple definitions/redefinitions of functions/classes/etc if you included the same header file multiple times.
In other words:
#include "myfile.h"
#include "myfile.h"
#include "myfile.h"
...all 3 are expanded into the CPP file, but the compiler only really looks at the 1st one, the other 2 are ignored.
I hope this helps.
There are basically 2 types of files used in C/C++:
1.) header files (.h)
2.) implimentation files (.cpp)
Header files prototype the classes/functions/structures/etc that are contained within the implimentation file.
The implimentation file contains the code for the things that were prototyped in the header file.
For example:
---myprogram.h------------------------------------------
#ifndef _MYPROGRAM_H
#define _MYPROGRAM_H
//None of this will be included if
//_MYPROGRAM_H has already been defined.
int drawPoint(int x, int y);
char * getName();
#endif
--------------------------------------------------------
---myprogram.cpp----------------------------------------
#include "myprogram.h"
int main()
{
int i = drawPoint(7, 43);
//more code here.
return 0;
}
int drawPoint(int x, int y)
{
//This is the implimentation of my drawPoint function.
}
char * getName()
{
//This is the implimentation of my getName function.
}
--------------------------------------------------------
...what good is all of this? It illustrates what -Zerosignull- was saying about "stop the code from being added twice".
Header files are expanded into the implimentation file at compile time. Adding the #ifndef and #define in the header file tells the compiler to ignore everything up to the #endif (ignore it if _MYPROGRAM_H has been defined), thus preventing multiple definitions/redefinitions of functions/classes/etc if you included the same header file multiple times.
In other words:
#include "myfile.h"
#include "myfile.h"
#include "myfile.h"
...all 3 are expanded into the CPP file, but the compiler only really looks at the 1st one, the other 2 are ignored.
I hope this helps.
so i am not clear huh? (just kidding)
Ok, I did''n know that, thanks, but my question is,
Is it normal to have a LOT of #include in all .cpp, or there is another way to regroup everything?
(I am french speaking so that''s why i am *maybe* not clear as i wish..
marvano
Ok, I did''n know that, thanks, but my question is,
Is it normal to have a LOT of #include in all .cpp, or there is another way to regroup everything?
(I am french speaking so that''s why i am *maybe* not clear as i wish..

marvano
August 08, 2001 10:55 PM
when you are new you will have to have lots of .h files included in all of your .cpp files, as you get better you will figure out how to use fewer. When you are new you will also have a lot of .h files in your other .h files. You should learn how to cut that down too. You should use forward declarations for classes whenever possible, but if you aren''t passing by pointer or if you are calling member functions you''ll probably have to include the .h file.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement