我如何执行以下操作,而不必在此文件中包含每个类T?
// ComponentMan.h
class ComponentMan
{
public:
template<class T>
void CreateComponent<T>()
{
T* temp = new T();
}
}
基本上,我想要一个通用的类实例化器。如何在不包含标头的情况下实现此目标?
最佳答案
您反过来做;您可以在要使用它的所有位置包括“ ComponentMan.h”。例如。:
foo.h
class Foo {
...
};
blah.cpp
#include "foo.h"
#include "ComponentMan.h"
void bar() {
ComponentMan man;
man.CreateComponent<Foo>();
}