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

# Templates/eoOneMaxQuadCrossover.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 simple quadratic crossover operators`
`=================================================`
`Quadratic crossover operators modify the both genotypes`
`*/`

`#ifndef eoOneMaxQuadCrossover_H`
`#define eoOneMaxQuadCrossover_H`

`#include <eoOp.h>`

`/**`
`* Always write a comment in this format before class definition`
`* if you want the class to be documented by Doxygen`
`*`
`* THere is NO ASSUMPTION on the class GenoypeT.`
`* In particular, it does not need to derive from EO`
`*/`

`template<class GenotypeT>` `class eoOneMaxQuadCrossover: public eoQuadOp<GenotypeT>` `{` `public:` `/**` `* Ctor - no requirement` `*/`

`// START eventually add or modify the anyVariable argument` `eoOneMaxQuadCrossover()` `// eoOneMaxQuadCrossover( varType _anyVariable) : anyVariable(_anyVariable)` `// END eventually add or modify the anyVariable argument`

`{`

`// START Code of Ctor of an eoOneMaxEvalFunc object` `// END Code of Ctor of an eoOneMaxEvalFunc object`

`}` `/// The class name. Used to display statistics` `string className() const { return "eoOneMaxQuadCrossover"; }` `/**` `* eoQuad crossover - modifies both parents` `* @param _genotype1 The first parent` `* @param _genotype2 The second parent` `*/` `bool operator()(GenotypeT& _genotype1, GenotypeT & _genotype2)` `{` `bool oneAtLeastIsModified;`

`// START code for crossover of _genotype1 and _genotype2 objects` `/** Requirement` `* if (at least one genotype has been modified) // no way to distinguish` `* oneAtLeastIsModified = true;` `* else` `* oneAtLeastIsModified = false;` `*/` `return oneAtLeastIsModified;` `// END code for crossover of _genotype1 and _genotype2 objects`

`}` `private:`

`// START Private data of an eoOneMaxQuadCrossover object` `// varType anyVariable; // for example ...` `// END Private data of an eoOneMaxQuadCrossover object`

`};` `#endif`

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

Last modified: Fri May 3 07:47:13 2002