问问题
83 次
2 回答
0
你可能会这样处理它:
struct ObjBase
{
virtual void print() const = 0;
};
template <typename T>
class Obj : public ObjBase
{
public:
T a;
public:
Obj(T a_) : a(a_) {}
virtual void print() const
{ std::cout << "a : " << a << std::endl; }
};
template <typename T>
class A
{
public:
ObjBase *pObj;
public:
A(ObjBase* pO) : pObj(pO) {}
void doSomethingWithObj()
{ pObj->print(); }
static Obj<double> X;
};
也就是说,有一个基类,它为您想要做的事情提供一个接口,这些事情不依赖于特定类型。
于 2013-09-29T18:04:52.560 回答
0
自己回答。
这是......我忘记了考试中的资格..
template <typename T>
class A
{
public:
Obj<T> *pObj;
public:
A(Obj<T>* pO) : pObj(pO) {}
void doSomethingWithObj()
{ pObj->print(); }
static Obj<T> X;
};
template<typename T>
Obj<T> Obj<T>::X(1.0);
于 2013-09-30T14:40:21.857 回答