在Perl中,存在着一個通用::能方法,你可以調用任何類或對象,以確定它是否能夠做一些事情:有沒有辦法在運行時確定對象是否可以在C++中執行方法?
sub FooBar::foo {}
print "Yup!\n" if FooBar->can('foo'); #prints "Yup!"
說我有在C++中,可以是任何一個基類指針有很多不同的派生類,有沒有簡單的方法來完成類似的東西?我不想在其他派生類中碰到任何東西,我只能改變調用函數的基類中的區域,以及支持它的派生類。
編輯︰等待,這是顯而易見的(從來沒有問題),我可以在返回一個數字表示UNIMPLEMENTED的基地執行它,然後檢查,當你調用它時,返回不是這個。我不確定我爲什麼以這麼複雜的方式來思考事情。
我也在想我會從另一個執行foo
的派生我的班,然後看看是否動態轉換到這個類的工作與否。
這是一樣的:http://stackoverflow.com/questions/87372/is-there-a-technique-in-c-to-知道如果一個類有一個成員函數的一個給定的s – fbrereto 2009-09-03 18:36:14
請記住,該函數必須虛擬爲您的解決方案工作。 – 2009-09-09 20:07:15