c++任意变量类型获取相关

    需要实现一个函数,template <class T> int get_unique_id(T t),传入任意类型的变量,变量类型相同时,返回值id相同,且如果为不同的变量类型返回的id不同(例如 get_unique_id(100)  参数为int类型,返回值为  1,get_unique_id(1000) 参数同样为int类型,返回值为 1, get_unique_id('A') 参数为char类型返回值为 2,get_unique_id('d')参数为char类型,返回值为 2...)。

   想法一:

    首先想到的实现方法:

    可以在模板函数get_unique_id()中定义一个static静态变量 初值为static int i = -1; 在外边定义一个全局变量int g_cout = 0;

    利用模板函数编译时,相同类型会使用同一个函数,不同类型会生成不同函数的机制进行生成(例如 get_unique_id(2) 和 get_unique_id(3) 都是整型,使用的是同一个函函数get_unique_id(int ),,而get_unique_id('C') 模板生成的函数是 get_unique_id(char)。考虑到每个函数里都有一个static int i 变量,通过外部全局变量的计数就能为每一个不同变量,返回

一个不同的id;代码实现如下:

int g_count = 0;
template<class T>
int get_unique_id(T t)
{
    stat
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值