作者johnjohnlin ()
看板C_and_CPP
標題[問題] parent class有辦法求繼承index嗎?
時間Tue Feb 6 21:02:39 2024
開發平台(Platform): (Ex: Win10, Linux, ...)
無指定,標準C++,可以在17或是之前的話最好
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
無指定
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
可以的話只用STL
問題(Question):
想請教一下,假設我有一個 class 是
class Derive: public B1, public B2
是否有簡單的方法得到static constexpr的值
Derive::GetIndex(B1*) = 0
Derive::GetIndex(B2*) = 1
可以先不考慮多重、多層繼承之類的複雜case
只需要先處理這種直接繼承關係
謝謝各位了~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.222.50.210 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1707224562.A.55B.html
1F:推 CoNsTaR: template <typename T> auto getIndex() { return T::ind 02/06 23:29
2F:→ CoNsTaR: ex; } 02/06 23:29
3F:→ CoNsTaR: 這樣有符合需求嗎? 02/06 23:29
5F:→ fatrabitree: 再配合一下MACRO應該可以不用手動建set 02/07 00:10
6F:推 LPH66: 我有點好奇「求多重繼承指定父類的順序」的用處在哪 02/07 01:18
7F:→ johnjohnlin: @LPH大大寫我在寫某個class繼承了consumer/producer 02/07 09:39
8F:→ johnjohnlin: ,使用者會用父介面呼叫這個class,然後我想要建出 02/07 09:39
9F:→ johnjohnlin: 相依關係的topological graph 02/07 09:39
10F:→ johnjohnlin: 二樓那個拿offset的方法好像可以試試看 02/07 09:42
11F:推 CoNsTaR: 所以你不是想要得到 parent class 某個 constexpr 的值, 02/08 09:08
12F:→ CoNsTaR: 你是要把 parent class 拿來排序 02/08 09:08
13F:→ firejox: std variant 02/08 10:00
14F:→ johnjohnlin: variant不適用我的場景,我需要有繼承關係 02/08 11:09
15F:推 LPH66: 如果這個排序可以不必是繼承順序的話 (建圖應該可以不是) 02/08 13:52
16F:→ LPH66: typeid(型態) 所得到的 type_info 物件有 hash_code() 能用 02/08 13:52
17F:→ LPH66: 或者根本可以用此 type_info 的 before() 方法判斷順序 02/08 13:52