std::vector<Class*> Class::GetImplementations() { std::vector<Class*> classes; for (unsigned int a=0;a<derivedClasses.size();a++) { Class* dc = derivedClasses[a]; if (!dc->IsAbstract()) classes.push_back(dc); std::vector<Class*> impl = dc->GetImplementations(); classes.insert(classes.end(), impl.begin(), impl.end()); } return classes; }