00001 00006 #ifndef GENETIK_GP_ST_GENE 00007 #define GENETIK_GP_ST_GENE 00008 00009 00010 #include <vector> 00011 #include <list> 00012 using namespace std; 00013 00014 #include "../Gene.h" 00015 00016 00017 00018 namespace genetiK 00019 { 00020 namespace gp 00021 { 00022 namespace st 00023 { 00024 00025 typedef unsigned char GeneType; 00026 00033 class Gene : public gp::Gene 00034 { 00035 private: 00036 GeneType type; 00037 GeneType* argumentType; 00038 00039 public: 00047 Gene(GeneType type,unsigned char arity,...); 00050 virtual ~Gene(); 00051 00057 GeneType getType() const{ return type; } 00058 00065 GeneType getArgumentType(unsigned char i) const{ return argumentType[i]; } 00071 virtual list<Gene*> extractListByType(GeneType geneType); 00072 00073 }; 00074 00075 } 00076 } 00077 } 00078 00079 #endif