※ 本文轉寄自 ptt.cc, 文章原始頁面
看板C_and_CPP
標題

[問題] parent class有辦法求繼承index嗎?

最新2024-02-08 13:52:00
留言17則留言,5人參與討論
推噓4 ( 4013 )
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1707224562.A.55B.html

Re: 回文串

417
> [問題] parent class有辦法求繼承index嗎?
C_and_CPP02/06 21:02

17 則留言

CoNsTaR, 1F
template <typename T> auto getIndex() { return T::ind

CoNsTaR, 2F
ex; }

CoNsTaR, 3F
這樣有符合需求嗎?

fatrabitree, 4F

fatrabitree, 5F
再配合一下MACRO應該可以不用手動建set

LPH66, 6F
我有點好奇「求多重繼承指定父類的順序」的用處在哪

johnjohnlin, 7F
@LPH大大寫我在寫某個class繼承了consumer/producer

johnjohnlin, 8F
,使用者會用父介面呼叫這個class,然後我想要建出

johnjohnlin, 9F
相依關係的topological graph

johnjohnlin, 10F
二樓那個拿offset的方法好像可以試試看

CoNsTaR, 11F
所以你不是想要得到 parent class 某個 constexpr 的值,

CoNsTaR, 12F
你是要把 parent class 拿來排序

firejox, 13F
std variant

johnjohnlin, 14F
variant不適用我的場景,我需要有繼承關係

LPH66, 15F
如果這個排序可以不必是繼承順序的話 (建圖應該可以不是)

LPH66, 16F
typeid(型態) 所得到的 type_info 物件有 hash_code() 能用

LPH66, 17F
或者根本可以用此 type_info 的 before() 方法判斷順序