问题标签 [class-template]

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 投票
1 回答
276 浏览

c++ - c++: C2783 错误实例化类模板

请原谅我的英语不好……我正在开发自己的 STL,但我在使用模板时遇到了一些问题。这是我的 List 类的主要结构:

好的,现在我需要实现一个成员函数“sort”,它将对列表的元素进行排序,但是在这个排序函数中,我需要创建一个 List 对象。我找到了一个以这种方式在不同模块中实现该功能的解决方案:

但以这种方式,我必须通过这样做来调用排序函数:

代替

我怎样才能做同样的事情,但使用 List 类的成员函数?如果 List 类是像下面的代码这样的抽象类,会有什么不同?

模板模板参数可以成为解决方案吗?我试着做这样的事情

但是当我写时出现 C2783 错误(“无法推断列表的模板参数”)

ListObject.sort();

任何形式的帮助将不胜感激:)

0 投票
1 回答
610 浏览

c++ - c++ 从模板结构继承

我有两个类来定义一些操作并记录矩阵行和列。一个用于主机,另一个用于设备。

基类应如下所示:

但除了数据类型和构造函数外,其他人员都是一样的。我要实现三个目标,一个是将类型 T 专门化为 device_vector 或 host_vector,另一个是为这两个结构编写不同的构造函数,并继承操作方法。我怎么能同时做到这一点?

谢谢!

0 投票
1 回答
75 浏览

c++ - 虚拟方法调用模板化类中的另一个虚拟方法

我一直在阅读有关此主题的不同问题,但无法找到一个完全回答我正在寻找的问题。这是我拥有的代码模式:

执行时我得到:

为什么调用 bar 的运行时调度不起作用?如果我在 Derived 中重载 foo 那么它确实调用了 foo 的派生版本,为什么它不能为 bar 执行动态调度?

因为我正在使用现有代码,所以我不希望在这里更改类的基本结构。我希望能找到一种方法来使通话正常工作,或者了解为什么不能正常通话。基于在这里阅读其他问题,我尝试了很多不同的事情,但都无济于事。

0 投票
0 回答
287 浏览

c++ - 从内部模板类专业化访问外部模板类 typedef

考虑以下代码

我高度怀疑评论中的错误是一个 g++ 错误(4.8.2),还是名称查找规则中的一个奇怪的微妙之处?

0 投票
1 回答
2751 浏览

php - PHP 中的类模板,如 C++ 中的类模板

是否可以像在C++中一样在PHP中创建类模板?PHP可能没有类似的语言结构(如C++中的关键字),但也许有一些巧妙的技巧来实现类似的功能?template

我有一个Point要转换为模板的类。在类中我使用类型参数,因此,对于每个类,我想传递给 Point 方法,我必须创建一个具有适当类型参数的 Point 类的新副本。

这是C++的示例形式:

在 PHP 中也是如此,但它根本不起作用(当然最后一行返回错误):

0 投票
2 回答
70 浏览

c++ - 类模板交互

我实际上相当确定我的问题的答案可以在先前创建的线程之一中找到。特别是,我必须在哪里以及为什么要放置“模板”和“类型名称”关键字?这对模板/类型名消歧有很好的解释。然而,我不知所措,因为我实际上无法将这个概念扩展到我的代码,这些代码是相互交互的类模板。

在这个线程中,我认为我看到了与我的代码中相同的错误。A<B>为什么使用where B 是类来定义 typedef 的答案,而不是A<T>where T 是我们实际想要的类型名模板。

尽管如此,我尝试了这些选项都无济于事。这是代码。谢谢您的帮助。

0 投票
2 回答
115 浏览

c++ - Class template member specialization

I'm specializing member functions of a template class in a header file like so:

Is it correct to put the specialization in a header file (without it being inline), or should it be in a cpp file? It compiles fine as shown above (using VS2012), but I'm rather surprised I don't get multiple definition linker errors.

0 投票
1 回答
812 浏览

c++ - C ++:当类被模板化时,如何在使用默认构造函数实例化后将输入输入到对象中

介绍:

对不起,如果标题有点混乱或模糊。对我的问题进行互联网搜索非常困难,因为我的问题似乎没有分解为可搜索的术语。另外,这是我在 Stackoverflow 上的第一篇文章,如果我超出了发布问题的常规,请多多包涵,我会尽我所能在格式化方面做到最好。

话虽如此,让我进入我正在尝试做的事情:

我是一所大学的学生,正在完成老师给我的任务。我们正在为向量创建一个类(即数学方面的向量,而不是数据类型向量)。这个类将是一个类模板,有两种不同的模板化数据类型,一种用于向量的 x 分量,另一种用于向量的 y 分量。这是一个简单的类,该类返回向量的大小和方向(以弧度为单位)。还有重载的输入和输出运算符作为友元函数,以及几个构造函数。我不使用动态内存,所以我们可以把整罐蠕虫放在一边。

这是我遇到的问题:

我的问题是,我无法进行 cin,也无法输出方向()和幅度()。编译器给了我一个很长的错误,但基本上说

错误 C2678:二进制“>>”:未找到采用“std::istream”类型左侧操作数的运算符(或没有可接受的转换)

但是,如果我这样做:

世人皆大欢喜。因此,我的问题很简单,我该如何解决这个问题?我想在使用默认构造函数实例化后使用 cin,并且我想输出方向()和幅度()。考虑到我已经完成了所有的标题声明和其他所有事情,而且我编写课程的方式是错误的——这里是:

我的班级文件:

就这些。如果我需要包含任何其他信息,请告诉我。

谢谢。

0 投票
2 回答
70 浏览

c++ - C++ 类模板问题

我的程序中出现错误提示“未解析的外部符号”,我尝试了所有我知道的但无法解决它。使用类模板后,我开始收到此错误。

这是 FileHandler 类标题:-

文件处理程序类实现

这是我在文件处理程序类中调用方法的代码

下面是我得到的错误的屏幕截图。

在此处输入图像描述

我该如何解决这个错误?

0 投票
2 回答
781 浏览

c++ - C++ 中的模板类和 int main()

我正在尝试将“普通”类重写为模板类。我遇到了一个问题 - 函数int main ()。我不确定问题是否确实在这里,但编译器报告“在 'b' 之前缺少模板参数”。我在互联网上找不到与类似问题相关的示例代码。你能帮我吗?

这是我找到的代码:

我试图重写它: