+ -
当前位置:首页 → 问答吧 → 怎样拷贝未知的数据类型的变量?

怎样拷贝未知的数据类型的变量?

时间:2011-11-30

来源:互联网

假如我想A和B的值一样;可是不知道A,B的数据类型。它们有可能是内部数据类型,也可能是用户自己定义的结构体之类的数据类型。那怎么办呢?

我要实现的函数
Funcopy(Tpye &A,Type B)//Type 是用户自己定义的数据类型
{
//让A和B“相等”,如果AB是结构体,则让AB的每个成员都相等
}

作者: shimachao   发布时间: 2011-11-30


template<class Type>
Funcopy(Tpye &A,Type B)//Type 是用户自己定义的数据类型
{
 A = B;//不是让A 和B相等,是把B的值赋给A //让A和B“相等”,如果AB是结构体,则让AB的每个成员都相等
}

作者: mingliang1212   发布时间: 2011-11-30

引用 1 楼 mingliang1212 的回复:
template<class Type>
Funcopy(Tpye &amp;A,Type B)//Type 是用户自己定义的数据类型
{
A = B;//不是让A 和B相等,是把B的值赋给A //让A和B“相等”,如果AB是结构体,则让AB的每个成员都相等
}


大哥我做这个函数的时候不知道是什么数据类型,我怎么知道AB有几个成员?

我要的是在不知道类型的情况下把B的值赋给A

作者: shimachao   发布时间: 2011-11-30

用typeid

作者: givemekey   发布时间: 2011-11-30

memcpy可以不??????

作者: shimachao   发布时间: 2011-11-30

楼主这种想法有点问题。

数据类型不一样有两种情况:
1. 可以转换
2. 不可以转换

对于可以转换但类型不同的两个变量,应该有办法可以做到楼主的要求。
对于类型不同,且不可转换的两个变量,应该没有办法做到楼主的要求。

作者: pathuang68   发布时间: 2011-11-30

AB是相同类型的。只是不知道是什么类型
引用 5 楼 pathuang68 的回复:
楼主这种想法有点问题。

数据类型不一样有两种情况:
1. 可以转换
2. 不可以转换

对于可以转换但类型不同的两个变量,应该有办法可以做到楼主的要求。
对于类型不同,且不可转换的两个变量,应该没有办法做到楼主的要求。

作者: shimachao   发布时间: 2011-11-30

memcpy(&A, &B, sizeof(A));

作者: xingfeng2510   发布时间: 2011-12-01

引用 7 楼 xingfeng2510 的回复:

memcpy(&amp;A, &amp;B, sizeof(A));

按位拷贝,不过要保证A、B不存在继承关系而且含有虚函数。

作者: xingfeng2510   发布时间: 2011-12-01

引用 7 楼 xingfeng2510 的回复:
memcpy(&amp;A, &amp;B, sizeof(A));


帮我看看这memcpyhttp://topic.csdn.net/u/20111201/00/5d5cdf93-9365-4e16-a18d-34460082d3b3.html

作者: shimachao   发布时间: 2011-12-01