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