c++ can one turn a string value into a type? -


i trying write generic code:

int _pid = _plant->getplantinternalid(); std::string _plantname = getplantbaseduponinternalid(_pid); 

_plantname returns string of plant, broccoli

but there way this:

for (int f=0; f < _f.getplants().size(); f++) {             std::shared_ptr<plant> sbas = _f.getplants().at(f);      std::shared_ptr<_plantname> sder2 = std::dynamic_pointer_cast<_plantname>(sbas); } 

notice putting in _plantname need like:

std::shared_ptr<broccoli> sder2 = std::dynamic_pointer_cast<broccoli>(sbas);     

what needing called , how accomplish it?

update: getting id based upon internal id made up:

std::string hudforstatus::getplantbaseduponinternalid(int _id) {     switch (_id)     {         case 114: // asparagus             return asparagus::plantname.c_str();             break;         case 113: // beets             return beets::plantname.c_str();             break;         case 115: // bok choy             return bokchoy::plantname.c_str();             break;         case 107: // broccoli             return broccoli::plantname.c_str();             break;         case 101: // carrot             return carrot::plantname.c_str();             break;         case 110: // celery             return celery::plantname.c_str();             break;         case 103: // corn             return corn::plantname.c_str();             break;         case 116: // eggplant             return eggplant::plantname.c_str();             break;         case 102: // green beans             return greenbeans::plantname.c_str();             break;         ... <snip>... } 

}

this not c++ way solve problem. instead, give plant appropriate abstract interface , don't need know concrete type you're working with. instead use interface , let virtual dispatch decide plant , implementation call.


Comments

Popular posts from this blog

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

html - How to style widget with post count different than without post count -

url rewriting - How to redirect a http POST with urlrewritefilter -