Back to Lesson 5 - Tutorial main page - Top-Down page - Bottom-up page - Programming hints - EO documentation

# Templates/eoOneMax.h

The places where you have to put some code are on pink background.. Only the the character colors have the usual meaning.

`/** -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-`
`The above line is usefulin Emacs-like editors`
`*/`
`/*`
`Template for creating a new representation in EO`
`================================================`
`*/`
`#ifndef _eoOneMax_h`
`#define _eoOneMax_h`
`/**`
`* Always write a comment in this format before class definition`
`* if you want the class to be documented by Doxygen`
`* Note that you MUST derive your structure from EO<fitT>`
`* but you MAY use some other already prepared class in the hierarchy`
`* like eoVector for instance, if you handle a vector of something....`
`* If you create a structure from scratch,`
`* the only thing you need to provide are`
`* a default constructor`
`* IO routines printOn and readFrom`
`*`
`* Note that operator<< and operator>> are defined at EO level`
`* using these routines`
`*/`

`template< class FitT>` `class eoOneMax: public EO<FitT> {` `public:` `/** Ctor: you MUST provide a default ctor.` `* though such individuals will generally be processed` `* by some eoInit object` `*/` `eoOneMax()` `{`

`// START Code of default Ctor of an eoOneMax object` `// END Code of default Ctor of an eoOneMax object`

`}` `virtual ~eoOneMax()` `{`

`// START Code of Destructor of an eoEASEAGenome object` `// END Code of Destructor of an eoEASEAGenome object`

`}` `virtual string className() const { return "eoOneMax"; }`

`/** printing... */` `void printOn(ostream& os) const` `{` `// First write the fitness` `EO<FitT>::printOn(os);` `os << ' ';`

`// START Code of default output` `/** HINTS` `* in EO we systematically write the sizes of things before the things` `* so readFrom is easier to code (see below)` `*/` `// END Code of default output`

`}` `/** reading...` `* of course, your readFrom must be able to read what printOn writes!!!` `*/` `void readFrom(istream& is)` `{` `// of course you should read the fitness first!` `EO<FitT>::readFrom(is);`

`// START Code of input` `/** HINTS` `* remember the eoOneMax object will come from the default ctor` `* this is why having the sizes written out is useful` `*/` `// END Code of input`

`}`

`private: // put all data here`

`// START Private data of an eoOneMax object` `// END Private data of an eoOneMax object`

`};` `#endif`

Back to Lesson 5 - Tutorial main page - Top-Down page - Bottom-up page - Programming hints - EO documentation

Last modified: Fri May 3 06:06:09 2002