zhwl-1212的个人主页

http://www.qtcn.org/bbs/u/92003  [收藏] [复制]

zhwl-1212

  • 16

    关注

  • 27

    粉丝

  • 17

    访客

  • 等级:新手上路
  • 总积分:6
  • 保密,2010-02-04

最后登录:2019-09-17

更多资料

日志

在模板函数中处理不同类型数据

2019-05-19 22:03
解决在模板函数中处理不同的数据类型有一些方法,在编译期间可以利用模板特化实现,运行期间可以利用多态、函数绑定等来实现。
方法一:利用模板特化来处理模板函数中的不同数据类型,而且类型中的属性也可以不同。
struct A
{
    int m_a = 1;
};
struct B
{
    QString m_b;
};
template <typename T>
inline QString convert(T &data){}
template <>
inline QString convert<A>(A &a)
{
    a.m_a++;
    return QString::number(a.m_a);
}
template<>
inline QString convert<B>(B &b)
{
    b.m_b = "this is B";
    return QString(b.m_b);
}
int main(int argc, char *argv[])
{
    A a;
    a.m_a = 3;
    B b{"Hello B"};
    auto convertA = convert(a);
    auto converBA = convert(b);
    return 0;
}
二:利用多态处理模板函数中的不同数据类型,类型中的属性相同。
分类:C++|回复:0|浏览:510|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:04-18 20:56
©2005-2016 QTCN开发网 版权所有 Gzip disabled