On Wednesday 11 June 2003 12:28, Verdi March wrote:
how can I perform "reflection" in C++ ? Is it possible?
T& createObj() { vector<string> argv; //read line and populate argv
//Set T = class to be instantiated.
return T::createObj(argv); }
You'll need a large if...else construct to do that and preferably a common
superclass for the classes you want to return:
T & createObj()
{
vector<string> argv;
... // read
T vehicle = 0;
if ( input == "plane" ) vehicle = new plane();
else if ( input == "train" ) vehicle = new train();
else if ( input == "car" ) vehicle = new car();
else
{
// handle input error
}
return vehicle;
}
--
Stefan Hundhammer