作者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/cn.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