+ -
当前位置:首页 → 问答吧 → c++泛型获取变量名字

c++泛型获取变量名字

时间:2011-12-12

来源:互联网

class Test1
{

int a;
int b;

double c;
};

class Test2
{
std::string str;
};

template<typename T>
void f(参数1:一条记录,参数2:字段名, 参数3:T ojb)
{
//根据记录给obj赋值
}

如何把这条记录给obj赋值呢???

记录是数据库中查找返回来的记录。。。。。






按照常理: 必须为一个类写一个函数转换。。。。 每一个类写一个转换函数。。。

而不是采用同一个函数转换。。。。通用性不好实现。。。 


我见过人用C#, 可以把数据库查询回来的记录给一个对象赋值。。。。

他是采用泛型做到的。。。。。。 


c++不知道能不能实现??


实在不能,我就不管他通用性了??

为每一个类 写一个函数即可。。。。


作者: caddor   发布时间: 2011-12-12

class Test1
{

int a;
int b;

double c;
};

class Test2
{
std::string str;
};


是T的实例化



作者: caddor   发布时间: 2011-12-12

采用模板类template<class T> class classname{};
template<typename T> void fun(T &a,...,classname<T> &mc);
看这样行不行

作者: qscool1987   发布时间: 2011-12-12


主要是考虑到通用性,不知道返回来几个字段的记录?

记录肯定是一条,不会超过两条。。。。

一条记录给 对象mc复制
 


返回来什么类型,都不得而知。。。。

字段个数也未定,,,,

这怎么写啊???


我怀疑C++ 压根就不能实现。。。。

类的成员变量个数都不得而知








引用 2 楼 qscool1987 的回复:
采用模板类template<class T> class classname{};
template<typename T> void fun(T &amp;a,...,classname<T> &amp;mc);
看这样行不行

作者: caddor   发布时间: 2011-12-12

template<class T> classname<T> fun(T &a,...,classname<T> &mc);
根据你的意思就是这样了,然后你把这个模板函数声明为类模板的友元函数
然后在函数里直接调用mc的数据成员,给它赋值即可


作者: qscool1987   发布时间: 2011-12-12

mc的成员个数未定啊??


作者: caddor   发布时间: 2011-12-12