Perl には UNIVERSAL::can メソッドがあり、任意のクラスまたはオブジェクトに対して呼び出して、何かを実行できるかどうかを判断できます。
sub FooBar::foo {}
print "Yup!\n" if FooBar->can('foo'); #prints "Yup!"
C++ に、さまざまな派生クラスのいずれかになる基本クラス ポインターがあるとします。これに似たものを簡単に実現する方法はありますか? 他の派生クラスでは何も変更する必要はありません。関数を呼び出す基本クラスと、それをサポートする 1 つの派生クラスの領域のみを変更できます。
編集:待ってください、これは明らかです(質問は気にしないでください)。UNIMPLEMENTEDを表す数値を返すベースに実装し、呼び出したときに戻り値がこれではないことを確認できます。なんでこんなに複雑に物事を考えていたのかわからない。
また、実装された別のクラスからクラスを派生foo
させ、このクラスへの動的キャストが機能するかどうかを確認することも考えていました。