我已经想出使用多态性并让列表存储指向 baseClass 的指针,但是在成功将其放置在那里之后,我想知道该对象最初是什么类。我正在为类使用模板,并希望有另一个字段,它是基本类型的枚举。
现在的问题是:有没有办法检查(在运行时或编译期间)
(if T == int)
field = INT
我虽然可能与预处理器有关,但我对此并不熟悉。
最佳答案
多态性背后的整个思想是隐藏特定的实现,使其在程序流中透明。使用类的类型作为指示器会使您的代码因 if
语句而膨胀,并且更难维护。
我建议您重新考虑您的设计并使用预期的行为方法制作一个抽象类,并将此类类型用作列表对象类型。而不是为每个对象调用接口(interface)方法(在抽象类中声明并在派生类中实现)
关于c++ - 不同类 C++ 的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970507/