X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=src%2Fgene.h;h=781cd3e29d67978dc2b27e965746a1fe53a6f645;hb=5e4a04634f1d31d4c774b44184cf08d3faf4d02a;hp=618f88723f1d4cf8a152d964441d8ea8d46e2e98;hpb=971fed67ac2e5a01b5232853c08e03ed05bebbe0;p=genetic.git diff --git a/src/gene.h b/src/gene.h index 618f887..781cd3e 100644 --- a/src/gene.h +++ b/src/gene.h @@ -3,28 +3,54 @@ namespace genetic { + /** + * 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) {} - Gene& operator=(const Gene&){ + /** + * 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.value; return *this; } + /** + * Allows read-only access to Gene value + */ Type get() const { return value; } }; } -#endif /* __GENE_H */ \ No newline at end of file +#endif /* __GENE_H */