gpt4 book ai didi

不提供模板参数的 C++ 类指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:23 25 4
gpt4 key购买 nike

你好亲爱的地下世界的人们称为互联网。

假设我们有一个名为 X 的类,带有模板参数 (Y):

template<class Y>
class X
{
//...
};

我想创建一个没有(还没有)模板参数的类的实例,然后用模板参数定义指针:

X* myClass;

//....
myClass = new X<variable>();

这有可能吗?

最佳答案

X 不是没有模板参数的类型,所以不,不幸的是不是。如果 X 有一个定义了您想要使用的接口(interface)的基类,您就可以实现您想要的。

例如,

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();

关于不提供模板参数的 C++ 类指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12679400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com