X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=src%2Fgene.h;h=781cd3e29d67978dc2b27e965746a1fe53a6f645;hb=5e4a04634f1d31d4c774b44184cf08d3faf4d02a;hp=e4142811b3e23bd31724d9a3ae7a243af828e801;hpb=7a36adcd1e7cbf19e0823e040f1531b412351cae;p=genetic.git diff --git a/src/gene.h b/src/gene.h index e414281..781cd3e 100644 --- a/src/gene.h +++ b/src/gene.h @@ -4,27 +4,49 @@ namespace genetic { /** - * Gene. + * Class representing Gene */ template < typename Type > class Gene { protected: + /** + * Value of the Gene + * This for example can be a primitive value such as: int or double, or + * with additional changes complex struct. + */ Type value; + + template friend class Gene; public: + /** + * Default constructor + */ Gene() {} + /** + * Class constructor, initializes Gene with default value. + */ Gene(Type value) { this->value = value; } /** Copy constructor */ - Gene(const Gene& gene) : value(gene.get()) {} + Gene(const Gene& gene) : value(gene.value) {} + /** + * Copy operator. + * + * @param gene Gene from which the value should be copied. + * @return Gene instance containing copied value + */ Gene& operator=(const Gene& gene) { - this->value = gene.get(); + this->value = gene.value; return *this; } + /** + * Allows read-only access to Gene value + */ Type get() const { return value; }