我想知道是否有办法获取一个字符串,其输出命名一个函数来调用,然后调用该函数而不编写一堆if或switch语句。更具体地说,我有许多对象都继承自一个抽象基类,它有一个名为getType();
的函数,它返回一个string
表示它们的类型:
virtual const string getType()
我有一个Base *
的列表都指向派生对象,但是派生对象中的某些函数不能仅使用Base *
来调用。所以我计划询问对象是什么类型,然后动态转换为该类型,然后调用它的函数。所以我想知道是否有一种方法,取一个字符串并使用该字符串被编译器解释为代码?
我知道我的方法可能有点草率想要动态转换为派生类,但我仍然想知道我是否可以将字符串解释为代码,并且希望听到更好的想法。
答案 0 :(得分:0)
不幸的是,我不相信你想要的是什么。基指针指向的对象应该能够向其所有方法发送消息,而不仅仅是虚拟方法。我无法肯定地说,因为您没有发布任何代码,但我认为您的子类中的方法的访问级别修饰符可能有问题。