0

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

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

基本上,我想要一个通用类实例化器。我怎样才能做到这一点,而不包括无处不在的标题?

4

1 回答 1

2

你反其道而行之;你在任何你想使用它的地方都包含“ComponentMan.h”。例如:

foo.h

class Foo {
    ...
};

等等.cpp

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

void bar() {
    ComponentMan man;
    man.CreateComponent<Foo>();
}
于 2011-12-17T16:31:49.107 回答