问题标签 [template-classes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 有没有办法检查模板是什么数据类型?
假设我有以下代码:
有可能以某种方式做到这一点吗?如果没有,你能推荐一种方法来完成同样的事情吗?
c++ - 私有静态数据成员+模板类
我有这个代码:
在 ah 文件中:
在 a.cpp 文件中:
我有另一个名为test.cpp
which的文件#includes a.h
并使用它的代码。
起初我在 CASTS 中有一个map
静态私有数据成员,并在.a.cpp
a.cpp
a.h
然后我遇到了另一个问题,我无法在 cpp 文件中初始化 map(CASTS 类的私有静态数据成员),因为我开始获取multiple definition error
. 因此,我尝试将Class_Hierarchy
其映射为公共数据成员,并Class_Hierarchy
在CASTS
类中创建一个静态实例以使用其映射,但我得到了undefined reference to CASTS::classHierarchy
.
我想不出这两个问题的解决方案,如何将模板类保留在头文件中并在 CASTS 类中有一个静态成员?
现在我唯一的错误是undefined reference to
CASTS::classHierarchy'`。
编辑:
我对每个成员函数都有多重定义错误,所以我在a.cpp
文件中添加了#include 保护。
c++ - 如何初始化使用其他模板类的模板类成员?
我无法正确设置和访问类的成员函数。该节点类用于构建最大堆树。但是,当树被初始化时,我得到的是垃圾数据,而不是我初始化它的内容。
这是构建我的堆树的类。我已经尝试过在构造函数中设置初始化,但我仍然收到垃圾数据。此外,我将构造函数设置为采用整数,但是当我在驱动程序中创建树时,它不会让我为其添加一个参数来启动该大小的数组。
c++ - 如何调整动态模板数组的大小?
我有一个动态模板数组作为我班级的成员。但是,我无法在构造函数或任何其他函数中调整数组的大小。我对语法感到困惑。这是代码:
该数组是HeapNode<Type>
HeapNode 类中包含的对象数组。这是 HeapNode 类的构造函数:
c++ - 具有特殊功能的拉开功能类型
这个问题的答案使用类模板挑选出一个函数类型:
当我研究这里正在做的事情时,我试图重写function_args
. 我试图使用一个函数来做到这一点,以消除对decltypeargs
模板的需求。但发现自己陷入了不正确的语法:
我的希望是打电话decltype(myTry<decltype(foo)>())
来获取tuple
类型,而不是打电话decltypeargs<decltype(foo)>
。有没有办法通过函数声明来做到这一点?
c++ - 指针模板数组c ++?
大家好,在我的 c++ 程序中,我有四个类(A、B、C、D)
- A 是基类
- B 继承自 A
- C 继承自 A
- D 继承自 B
它们都是模板类template<class Type>
,每个都有一个 print 方法来打印它的私有成员和它继承的类的私有成员。
因此 B 将打印 B 私人成员和 A 私人成员,C 将打印 C 私人成员和 A 私人成员,D 将打印其私人成员和 B,A 私人成员。
在主函数中,我想为类 A 创建一个指针数组,每个类的对象有 3 个位置,然后我想循环每个对象的打印方法。
问题是当我将类更改为模板类时,我收到一条错误消息“我的类没有构造函数”;但是他们确实有。
这是我的代码请帮助(注意我评论了错误发生的地方):
c++ - 模板 typedef 不是类或命名空间名称
我正在编写一个模板类,它的行为应该像一个容器。内部数据是指向泛型类的智能指针向量T
。
标题
来源
我对C++中的模板类非常陌生,并且有点卡在ERROR LINE 1
错误 C2653:“v_p_elements”:不是类或命名空间名称
所以我评论了这个begin()
方法,但在ERROR LINE 2处,它因同样的错误而停止。
现在似乎很清楚,由于v_p_elements
在类内部进行了类型定义,因此可能无法将其导出到外部世界。但现在我要问的是整个事情是否可能,或者我只是误解了什么。
c++ - 可变参数模板类:是否可以为每个可变参数模板参数实现一个唯一的成员函数?
我正在使用访问者模式来实现反射,而不依赖于 RTTI。我的问题是:
我想实现一个访问者,它可以将派生自同一个 BaseItem 类的不同类 DerivedItem1、DerivedItem2 等转换为这个 BaseItem 类。
基类和派生类之一如下所示:
访客类:
像这样实现 BaseVisitor 是不可能的,因为DerivedItem::visit(BaseVisitor)
它不会将自己转换为它的 Base 类并且BaseVisitor::handle(BaseItem &v)
永远不会被调用。
我想将访问者实现为模板类,将基类和所有派生类作为模板参数,如下所示:
是否有可能使用 C++ 让编译器自行生成此成员函数?
c++ - c++中模板类的接口和继承
我对使用模板类继承的项目有疑问。这个想法是让代理具有指向 msgtype 的指针。msgtypes 可以不同,这就是模板类进入游戏的原因。这个想法是通过接口类存储不同的消息类型。要使用 msgtype 实例初始化 Agent 中的接口指针,我需要包含 #include "msginterface.h" 和 #include "msgtype.h"。不幸的是,如果我只包含“msginterface.h”,项目编译得很好。但是,如果我在初始化所需的 Agent.h 中添加 #include "msgtype.h"。我得到这个疯狂的错误:
我得到的错误是:
错误:“<”之前的预期模板名称 令牌类 Msg:public MsgInterface{ ^ /home/Catkin/src/template_class/src/msg.h:10:30: 错误:预期 '{' before '<' 令牌/home/Catkin/src/template_class/src/msg.h:10:30: 错误: '<' 之前的预期 unqualified-id 令牌
你知道这个错误的原因是什么吗?
可以使用以下代码重现该错误:
//main.cpp
//代理.h
//msginterface.h
//msg.h
//msgtype.h
c++ - 模板类如何匹配
我尝试理解enable_if
实现,它是一对模板类。什么我不明白,为什么enable_if<true, int>
不匹配第一个?这是怎么决定的?