Notes from C++ Primer
In general, head file includes: class definition, declaration of extern variable and declaration of function.
1. Head file is used to declare variale, not define.
extern int ival = 10; // initializer, so it's a definition double fica_rate; // no extern, so it's a definition
Head files are often included in multiple original files. If there's a definition in the head file, then there will be replicated definitions which is an error.
Exception: class, const object, and inline function can be defined into head files.
Explaination for const object: By default, the const vaiable is local variable. So every original file wll get its own const variable defined in the head file.
2. When we write the head files, we need to avoid including a same head file a lot a times. Thus we need header guard. All head files should be writen like this:
#ifndef {Filename} #define {Filename} //{Content of head file} #endif
For example:
#ifndef SALESITEM_H #define SALESITEM_H //{Content of head file} #endif