问题标签 [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.

0 投票
3 回答
151 浏览

c++ - c++:模板成员添加函数

我有一个界面IOperand

和班级Operand

IOperand和成员函数operator+toString原型不能被修改。成员函数 operator+ 必须添加 2 中包含的 2 个值IOperand。我的问题是这个值可以是 int、char 或 float,但我不知道如何使用模板来做到这一点。我试过这个:

我的toString方法:

但是编译器没有找到this->valuerhs.value因为它们不在IOperand.

编辑:作为评论中的建议,我在 and 中添加了该方法toString,我真的不知道它是否有帮助。OperandIoperand

0 投票
2 回答
93 浏览

c++ - 这个简单的 C++ 模板类有什么问题?

以下代码段位于头文件中:

这就是我将如何使用它:

我的问题是为什么最后两次打印调用不会导致零值?

0 投票
0 回答
45 浏览

c++ - 使用向量的 C++ 模板类

在我的一个小项目中,我遇到了这样的情况:

这段代码编译得很好,但无法链接,因为在主文件中链接器无法找到 AClass 的实现,除非我将其添加到 cpp 文件中:

但这只是愚蠢的,因为它带走了使用模板的优势。

现在的问题是:有没有办法在不使用 cpp 文件中的类转发的情况下解决链接问题,或者这不可能在单独的 .h 文件和 .cpp 文件中有类似的东西?提出前向类声明对我来说不是一个选择。

我真的很想对此进行澄清。

谢谢

0 投票
2 回答
3677 浏览

c++ - 为基类设计基迭代器

我目前正在设计一个接口(Base在以下示例中),它提供了几个虚拟方法,包括begin()end()。这两个方法简单地返回相应的迭代器,就像在任何其他集合(如类)中一样。派生类应实现这些方法并返回其特定的迭代器实现。

以下(简化)示例显示了一个派生类,它使用 aboost::transform_iterator来转换私有内部整数列表。这个实现只是现实中的一个例子,迭代的“东西”可以是别的东西,迭代器也是如此。

该示例有效,但我有一个问题。in 的对象类型main()并没有隐藏使用的迭代器是 type 的事实TransformIterator。基类将用于某种插件架构,其中每个插件都是一个共享库。插件不应该知道使用了哪种类型的迭代器,而应该完全依赖于抽象接口。有没有办法做到这一点?

更多背景知识:这个具体示例基于读取配置文件的接口。目前我只打算为 YAML 文件提供一个实现,但其他格式,如 XML 或老式 INI 也是可能的。因此是一个通用接口。

0 投票
3 回答
13981 浏览

c++ - C++ 类模板未定义对函数的引用

当我从我的主函数中的模板类“add”和“greater”调用这两个函数时,我不断得到未定义的引用。

所以,我有:number.h

数字.cpp

我的主要文件是:resolver.cpp

我不断收到的错误是:

我在这里先向您的帮助表示感谢!

0 投票
4 回答
461 浏览

c++ - 是否可以在模板类中使用类堆栈元素的向量?

我有一个“stack.h”和一个“stack.cpp”文件,它们定义了一个手工制作的堆栈类。

我现在想要做的是创建另一个类“名称”,其中包含一个“nr”堆栈向量,我不知道从哪里开始。

德普.h:

我的 name.h 没有编译我只是想知道是否可以做一个这样的向量。

我的堆栈头被称为“stiva”,所以我根据这个编辑了“name.h”文件。

stiva.h

在主要我初始化是这样的:

德普 d(5,10);

0 投票
2 回答
805 浏览

c++ - 模板类 T

如果我有

如何在 .h 文件之外使用它?

我试过Vector<T>::Vector了,但这不起作用。

.h 文件的某些部分

); //这是在同一个.h文件中但在类之外的代码

0 投票
1 回答
835 浏览

c++ - c++:无法将函数定义与现有声明匹配

这是我如何在“模板”的公众中声明它的地方


这是打印

我不知道我做错了什么。

0 投票
3 回答
74 浏览

c++ - 测试“Try and Catch”

在这个程序中,我使用模板类,我有一个头文件,这是我的主文件。我无法显示 (" ..... ") IndexOutOfBounds 并将其显示在屏幕上。

Array.h 文件作为保管箱链接发布

数组.h

Array.h 中的代码operator[]是:

0 投票
2 回答
809 浏览

c++ - 通过使用特征的模板类在编译时抛出错误来禁用函数

我有一个类,让我们Foo用几种方法来调用它:

我希望能够同时构造Foo<double>和但是当类型 T 不是浮点类型时Foo<int>我不想允许调用。bar()我还希望在编译时而不是在运行时生成错误。所以,我想要的是:

我尝试了很多事情(使用类似thisthis oneenable_if的帖子),但我不能再使用. 例如:intFoo

如何限制bar()对浮点类型的使用,但允许在其他地方使用整数类型?