C++能否向方法传递类型或在方法内判定类型,实现无类模板的列表打印?
自定义泛型列表的自动类型适配打印实现问题
当前实现状态
- 正在自行开发支持存储任意类型数据的列表结构,目标是列表可根据存储的实际数据类型,自动匹配对应打印逻辑完成输出
- 目前已完成整数、字符两类数据的存储测试,为适配不同类型的打印需求,单独编写了
print_int、print_char两个专属打印方法
核心疑问
能否完全不使用类模板机制(即不采用List<type>这类携带显式类型参数的定义形式),仅定义一个通用的print方法,即可根据列表存储的实际数据类型自动适配完成打印?
上述提问明确指的是不采用如下模板类的定义形式:
template <class T> class List{ T *data; List *next; // 其余类实现逻辑省略 };
补充说明
- 该问题后续可通过C++的
dynamic_cast实现动态类型检查,完成对应打印逻辑的自动适配 - 不少开发者对C++的类型处理能力存在认知偏差,因不了解该问题的正确解法,曾对该提问给出负向投票
内容的提问来源于stack exchange,提问作者Alexander Korovin
相关产品推荐
相关产品推荐

