用C ++方法创建模板类?

时间:2011-12-17 16:29:58

标签: c++ templates template-meta-programming

如何在不必在此文件中包含每个类T的情况下执行以下操作?:

// ComponentMan.h
class ComponentMan
{
public:
    template<class T>
    void CreateComponent<T>()
    {
        T* temp = new T();
    }
}

基本上,我想要一个泛型类实例化器。如何在不包含标题的情况下实现这一目标?

1 个答案:

答案 0 :(得分:2)

你反过来这样做;在任何想要使用它的地方都包含“ComponentMan.h”。 e.g:

<强> foo.h中

class Foo {
    ...
};

<强> blah.cpp

#include "foo.h"
#include "ComponentMan.h"

void bar() {
    ComponentMan man;
    man.CreateComponent<Foo>();
}