Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


header!!


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 marvano   Members   -  Reputation: 122

Like
Likes
Like

Posted 08 August 2001 - 08:26 AM

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..

Sponsor:

#2 Zerosignull   Members   -  Reputation: 122

Like
Likes
Like

Posted 08 August 2001 - 09:29 AM

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~

#3 asmLOCK   Members   -  Reputation: 122

Like
Likes
Like

Posted 08 August 2001 - 10:04 AM

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.

#4 marvano   Members   -  Reputation: 122

Like
Likes
Like

Posted 08 August 2001 - 10:19 AM

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



#5 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

Likes

Posted 08 August 2001 - 04: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.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS