在 Perl 中,有一个 UNIVERSAL::can 方法可以调用任何类或对象来确定它是否能够做某事:
sub FooBar::foo {}
print "Yup!\n" if FooBar->can('foo'); #prints "Yup!"
假设我在 C++ 中有一个基类指针,它可以是许多不同的派生类中的任何一个,有没有一种简单的方法来完成类似的事情?我不想触及其他派生类中的任何内容,我只能更改基类中调用该函数的区域,以及支持它的一个派生类。
编辑:等等,这现在很明显(不要管这个问题),我可以在返回一个代表 UNIMPLEMENTED 的数字的基础中实现它,然后在调用它时检查返回不是这个。我不知道为什么我会以如此复杂的方式思考事情。
我还想我会从另一个实现的类中派生出我的类,foo
然后看看对这个类的动态转换是否有效。