【发布时间】:2011-06-30 17:03:14
【问题描述】:
有如下简化的数据结构:
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:
函数.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();
...
}
【问题讨论】:
-
这在 C++0x 中是可能的。