+ /** Copy constructor */
+ Chromosome(const Chromosome& chromosome)
+ : genes(chromosome.genes) {
+ }
+
+ /**
+ * Copy operator.
+ *
+ * @param chromosome Chromosome from which the Genes should be copied.
+ * @return Chromosome instance containing copied Genes
+ */
+ Chromosome& operator=(const Chromosome& chromosome) {
+ this->genes = chromosome.genes;
+ return *this;
+ }
+
+ /**
+ * Returns number of Genes in current Chromosome
+ *
+ * @return number of Genes in current Chromosome
+ */
+ unsigned int size() const {
+ return this->genes.size();
+ }
+
+ /**
+ * Returns i-th Gene in the current Chromosome
+ *
+ * @return i-th Gene in the current Chromosome
+ */
+ _Gene& operator[](unsigned int i) {
+ return this->genes[i];