#ifndef NODE_H #define NODE_H #include using namespace std; class Node { public: //int node_type; virtual ~Node(void){}; virtual void printNode()=0; virtual int qualifyNode()=0; }; class NodeGroup :public Node { public: virtual ~NodeGroup(); typedef list::iterator iterator; list Sons; virtual void addNode(Node* nd); virtual void printNode(); virtual int qualifyNode(); }; NodeGroup::~NodeGroup() //distruttore: disalloca tutti i figli { //for(iterator i=Sons.begin();i!=Sons.end();++i) // delete (*i); } void NodeGroup::addNode(Node* nd) { Sons.push_back(nd); } void NodeGroup::printNode() {} int NodeGroup::qualifyNode() {return 0;} const int MAIN_NODE= 0; const int SLOTS_NODE= 1; const int SLOT_NODE= 2; const int OWNSLOT_NODE= 3; const int ENTRY_NODE= 4; const int VALUE_NODE= 5; const int CLASSES_NODE= 6; const int CLASS_NODE= 7; const int OWNSLOTS_NODE= 8; const int INSTANCES_NODE= 9; const int INSTANCE_NODE= 10; enum values {VALUE_INTEGER, VALUE_FLOAT, VALUE_BOOL, VALUE_STRING}; //#define MAIN_NODE 0; //#define SLOTS_NODE 1; //#define SLOT_NODE 2; //#define OWNSLOT_NODE 3; //#define ENTRY_NODE 4; //#define VALUE_NODE 5; // //#define CLASSES_NODE 6; //#define CLASS_NODE 7; //#define OWNSLOTS_NODE 8; // //#define INSTANCES_NODE 9; //#define INSTANCE_NODE 10; #endif