我有课,每个都返回它的名字
struct IFoo { virtual const char * GetName() const = 0; } struct Foo : IFoo { const char * GetName() const { return "Foo"; } } struct Bar: IFoo { const char * GetName() const { return "Bar"; } }
而在其他地方:
Foo* a = new Foo(); Foo* b = new Foo(); std::map<const char *,int> data; data[a->GetName()] = 0; printf("%i",data[b->GetName()]);