Mig*_*l P 5 c++ variables templates pointers class
你好,亲爱的地下世界的人们,称为互联网。
假设我们有一个名为 X 的类,其模板参数(Y):
template<class Y>
class X
{
//...
};
Run Code Online (Sandbox Code Playgroud)
我想创建一个没有(还没有)模板参数的类实例,然后使用模板参数定义指针:
X* myClass;
//....
myClass = new X<variable>();
Run Code Online (Sandbox Code Playgroud)
这有可能吗?
小智 5
X 不是没有模板参数的类型,所以不,不幸的是不是。如果 X 有一个定义了您想要使用的接口的基类,您就可以实现您想要的目标。
例如,
struct Interface
{
Interface() {}
virtual ~Interface(){}
virtual void doSomething() = 0;
};
template <class Y>
class X : public Interface
{
//...
virtual void doSomething() override;
};
std::unique_ptr<Interface> myClass;
//....
myClass.reset(new X<variable>());
myClass->doSomething();
Run Code Online (Sandbox Code Playgroud)