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 {
    ...
};

blah.cpp

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

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