Создать шаблон класса в методе C ++? - PullRequest
0 голосов
/ 17 декабря 2011

Как я могу сделать следующее, не включая каждый класс T в этот файл?:

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

По сути, я хочу универсальный экземпляр класса. Как я могу добиться этого, не включая заголовки везде?

1 Ответ

2 голосов
/ 17 декабря 2011

Вы делаете это наоборот; вы включаете «ComponentMan.h» везде, где хотите его использовать. e.g.:

foo.h

class Foo {
    ...
};

blah.cpp

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

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