C++类指针而不提供模板参数
C++ class pointer without giving template parameters
你好,亲爱的黑社会的人们,叫做互联网。
假设我们有一个名为 X 的类,其中包含模板参数 (Y):
template<class Y>
class X
{
//...
};
我想创建一个没有(还没有)模板参数的类实例,然后使用模板参数定义指针:
X* myClass;
//....
myClass = new X<variable>();
这有可能吗?
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();
No.指针指向类型,而X
不是类型。
不带X*
.考虑以下替代方法:
class BaseX {
//...
};
template<class Y>
class X : public BaseX
{
//...
};
由于BaseX
是一个完整的类型,因此一旦定义了它,就可以BaseX*
引用某些X<Y>
。
相关文章:
- 使用指向成员的指针将成员函数作为参数传递
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- 修改函数中的指针(将另一个指针作为参数传递)
- Clang bug?使用指针作为模板参数
- MSVC将仅移动结构参数解释为指针
- 非类型指针和引用模板参数,以及在编译时如何/为什么解析它们.c++
- 如何使用非类型模板参数传入指向数组的指针
- 将成员函数指针作为参数传递给模板方法
- 匹配函数指针作为模板参数?
- 当指向对象的指针作为参数传递给 std::thread 时,内存可见性
- 通过智能指针和转换对基本模板参数进行模板推导
- 为函数定义符号不明确的指针参数
- 使用引用与指针将数组作为参数传递
- 如何将成员函数作为回调参数传递给需要"typedef-ed"自由函数指针的函数?
- C++ - 声明指向返回任何类型并获取任意数量参数的函数的指针
- 将函数参数完美转发到函数指针:按值传递呢?
- 保留函数指针模板参数
- 如何构造一个以可变参数指针函数作为成员的类?
- 指向对象的非类型模板参数指针
- c++ 使用 *& as 参数(指针乐趣,三级树方法)