获取参数的类型,模板,C

获取参数的类型,模板,C,第1张

概述有以下简化数据结构: Object1.h template <class T>class Object1{ private: T a1; T a2; public: T getA1() {return a1;}}; Object2.h template <class T>class Object2: public Object1 <T>{ pr 有以下简化数据结构:

Object1.h

template <class T>class Object1{  private:     T a1;     T a2;  public:     T getA1() {return a1;}};

Object2.h

template <class T>class Object2: public Object1 <T>{   private:      T b1;      T b2;  public:     T getB1() {return b1;}}

有没有办法在下面的函数中获取一个对象的类型T:

Functions.h

template <class Object>voID (Object *o1,Object *o2){   T = o1.getA1();  //Is it possible to get T from object o1?   ...}

或者我们必须提供有关两个对象的数据类型的其他信息:

template <class T,class Object>voID (Object *o1,Object *o2){   T = o1.getA1();   ...}
解决方法 添加一个typedef:
template <class T>class Object1{  private:     T a1;     T a2;  public:     T getA1() {return a1;}     typedef T type;};template <class Object>voID foo(Object *o1,Object *o2){   typename Object::type x = o1.getA1();   ...}
总结

以上是内存溢出为你收集整理的获取参数的类型,模板,C全部内容,希望文章能够帮你解决获取参数的类型,模板,C所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1255430.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存