-6ren">
gpt4 book ai didi

c++ - 有没有办法在运行时确定一个对象是否可以在 C++ 中执行一个方法?

转载 作者:太空狗 更新时间:2023-10-29 23:25:15 26 4
gpt4 key购买 nike

在 Perl 中,有一个 UNIVERSAL::can 方法,你可以调用任何类或对象来确定它是否能够做某事:

sub FooBar::foo {}
print "Yup!\n" if FooBar->can('foo'); #prints "Yup!"

假设我在 C++ 中有一个基类指针,它可以是许多不同的派生类中的任何一个,是否有一种简单的方法来完成类似的事情?我不想触及其他派生类中的任何东西,我只能更改调用该函数的基类中的区域,以及支持它的一个派生类。

编辑:等等,这现在很明显了(不要管这个问题),我可以在返回一个代表未实现的数字的基类中实现它,然后在调用它时检查返回值不是这个。我不确定为什么我会以如此复杂的方式思考事情。

我还想我会从另一个实现了 foo 的类派生我的类,然后看看对这个类的动态转换是否有效。

最佳答案

如果您有指向基类的指针或引用,您可以使用 dynamic_cast 来查看它是哪个派生类(以及它支持哪个派生类的方法)。

关于c++ - 有没有办法在运行时确定一个对象是否可以在 C++ 中执行一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com