2014-02-26 108 views
-1

如何確定一個類是否沒有派生類?任何類型特徵方法都有幫助?如何確定一個類是否沒有派生類?

我想寫出一些數據。這些數據是通過一個像這樣的指針創建的

unique_ptr<A> a(new A); 

如果A類沒有子類,我只寫出數據內容。如果A有子類,我會先寫出它的具體類型,然後寫出數據內容。在讀取數據時,在讀取具體類型之後,我知道使用什麼具體類型來創建指針,然後讀取數據內容。因此,我認爲我必須確定A是否具有子類別?

+4

你想解決什麼問題?可能有更好的方法。這聽起來像是[X-Y問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 –

+1

由於單獨編譯,我不認爲這是可能的。我同意你應該發佈你想要完成的事情。 – delnan

+3

只需使用多態。這就是它的發明。 – juanchopanza

回答

1

這是不可能的,因爲一個類不知道什麼(如果存在)類從它派生。

struct foo {}; 

struct bar : foo {}; 

static_assert(std::is_base_of<foo,bar>::value); 
相關問題