Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检查子代c+中是否存在方法+;班_C++_Qt_Class_Methods_Descendant - Fatal编程技术网

C++ 检查子代c+中是否存在方法+;班

C++ 检查子代c+中是否存在方法+;班,c++,qt,class,methods,descendant,C++,Qt,Class,Methods,Descendant,我有一个基类(ANIMAL),一个后代类(BIRD),它添加了方法tweet。我将bird的一个实例传递给一个需要类ANIMAL的方法 该方法如何检查传入的对象是否实现了方法tweet 这在C++中(QT5在事例中)除非使用CRTP或虚拟多态性,否则你不能。你真正要解决的问题是什么?不,不是你要问的问题,而是你认为解决方案的真正问题是检查子类是否实现了特定的方法。我需要将对象传递到一个类中,该类可能提供或不提供特定的功能(即方法)。我只想在后代添加这些特性的情况下调用这些方法。试试dynamic

我有一个基类(ANIMAL),一个后代类(BIRD),它添加了方法tweet。我将bird的一个实例传递给一个需要类ANIMAL的方法

该方法如何检查传入的对象是否实现了方法tweet


<>这在C++中(QT5在事例中)

除非使用CRTP或虚拟多态性,否则你不能。你真正要解决的问题是什么?不,不是你要问的问题,而是你认为解决方案的真正问题是检查子类是否实现了特定的方法。我需要将对象传递到一个类中,该类可能提供或不提供特定的功能(即方法)。我只想在后代添加这些特性的情况下调用这些方法。试试dynamic_cast-Downcasting是一种代码气味。您可能应该选择组合而不是继承。