where can i find out a detailed information about How to write a header file ?

Dani AI

Generated

A compact, practical guide that fills gaps in the replies from , and . Focus on safe, reusable headers: make them the interface (types, function declarations, small inline/template defs, macros), keep non-inline implementations in .cpp, and make headers self-contained and idempotent so they can be included anywhere without breaking builds.

Use include guards (or modern #pragma once) so multiple inclusion is harmless:

#ifndef MYLIB_H
#define MYLIB_H

// interface: declarations, types, inline/template defs
class Widget {
public:
    Widget();
    void doWork() const;
};

#endif // MYLIB_H

Common patterns that prevent linker/ODR problems: declare globals with extern in the header and define them once in a source file; put only inline or template function bodies in headers; forward-declare heavy types to avoid pulling large headers unnecessarily.

/* header.h */
extern int g_count;        // declaration in header
inline int sq(int x) { return x*x; } // safe inline in header

/* source.cpp */
int g_count = 0;           // single definition

Quick troubleshooting checklist for linker errors and multiple-definition messages: confirm every non-inline function declared in a header has exactly one compiled definition; remove plain definitions of non-static globals from headers; add include guards if symbols appear multiple times; ensure all needed object files are linked. Avoid including .cpp files in headers except for very specific single-translation-unit tricks. Finally, the practical rule behind ’s note is correct: main belongs in one source file — placing it in a header is brittle and rarely appropriate.

Recommended Answers

All 9 Replies

A header file is made up of pre-processor directives, classes, namespaces etc. a good place to look at is cplusplus.com. look at the classes, objects and namespaces chapters...

My God I even had a comp science teacher ask me this.Arrrg one will go mad.

It's simple.Cut a few funtions out of you code and paste them in a file with a .h extension and call #include "your_header_name.h" to include that.

Note: not < > but " " if it's in the current directory else you have to supply the full or relative path.

All the rules are same as normal C++ syntax.

----------------------------------------------
That was very simple thing.Headers can be used for more things.They can just contain funtions declarations without definitions.In that case it will be used to link to a static library.

Eg.Make a header file with 2 funtion declarations like fun1(); fun2(); only
Include it with a cpp file and call the funtions and compile.

You will get no errors on compile but on linking you will see an error similar to the following:

undefined module fun1() refferenced from Module main.cpp
undefined module fun2() refferenced from Module main.cpp

I hope you understand a header in not really diffrent from a cpp file.Btw you can also include .cpp files.

Eg: #include "wow.cpp"

It is very very simple:


write some functions||define some macros||define structures/classes etc...
DO NOT include a main() function
save it with the name you want
e.g header.txt/cpp/in/out/...
you use it through: #include "..."
if you have variables in your header, do not redeclare them in your programs or it will give you an error "Multiple declaration for variable..."
:p

Even if you include main() in a header and dont declare main() in any other funtion the program will complie and work properly.Headers are just a way to organise code.

well if you include main() in a header that would be more like a program than like a header but anyway you can ;)

did the computer science teacher ask you it on a test?

commented: Ridiculous bump -1
commented: ... +0

did the computer science teacher ask you it on a test?

You bumped a 6-year-old thread for that????

bump

commented: bump back -1

where can i find out a detailed information about How to write a header file ?

Trying to learn c++. The tutorial is missing a .h (header file) ?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.