After crawling through the classes and creating the header files. I was introduced to the joy of including the assignment 2 structure into our project(cpp and header files). Meaning the mess of my circular includes AND lack of includes through use of undeclared identifiers.
Basically there a few rules for handling includes:
In Header Files
- use forward declarations when you can. Meaning if you only refer to the class you can use this option.
- #include "*.h" your base classes.
- In our case because we have need identifiers from io_def.h, we should include that in every necessary header file.
In Cpp Files
- #include "*.h" your respective header file ie: inslude io_form.h in io_form.cpp.
- #include "*.h" your forward declarations from your included header file.
#ifndef __IO_FORM_H
#define __IO_FORM_H
#include "io_frame.h"
#include "io_def.h"
class IO_Field;
class IO_Label;
class IO_Form : IO_Frame{
...
};
...
#endif
And io_form.cpp:
#include "io_field.h"
#include "io_label.h"
#include "io_form.h"
...
EOF
I hope this helps somebody! Next on the to do list: divide Assign2 and fix << operators and my mess with pure virtual functions.
No comments:
Post a Comment