问题标签 [non-member-functions]

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 投票
2 回答
82 浏览

c++ - 非成员模板友元函数默认参数值错误

为什么下面的代码可以用 GCC 编译,但不能用 Clang?谁是对的,为什么?

使用 clang++ 时出现以下错误:

GCC 版本:g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0

Clang 版本:clang 版本 6.0.0-1ubuntu2

我该如何解决这个问题?

0 投票
1 回答
2409 浏览

c++ - 没有操作符 ">>" 匹配这些操作数操作数类型是:std::istream >> double

对于我的项目,我正在尝试为复数类创建一个免费函数。它在 cpp 文件中定义。该函数是一个重载的输入流操作符,但我不断收到错误

线上

我创建了一个名为的文件complex.h,其中包含complex类和两个我想要工作的重载运算符、复数的构造函数(不确定是否需要但包括在内),以及两个用于检索复杂类的实部和虚部的 getter 方法。这会重现错误。

成员函数的声明由我的项目规范决定。它们的返回类型不能更改。

0 投票
1 回答
69 浏览

c++ - 如何从非类函数c ++编写类内函数?

我有一个非类的合并功能。

合并.cpp

通常,我像这样在 main 中调用 merge 。

但是,我想这样调用 main 。

为了以第二种方式调用,我教我需要一个不接受 Sorter 类的参数和参数的成员函数。所以,我实现了我的成员函数,如下所示。

分拣机.cpp

我进行了研究,发现这是关于辅助功能的,但我无法弄清楚。我的方法是否正确?

0 投票
1 回答
191 浏览

c++ - C++链表非成员函数反向打印

所以我了解了如何使用递归以相反的顺序打印单个链表。我在做非成员函数时遇到了麻烦。例如在int print_reverse(IntSLList & list))函数中如何以迭代方式打印反向?

这是主要的

新增功能

0 投票
1 回答
57 浏览

c++ - C++ 中的自由函数

我想将 v2 添加到 v1。我的成员功能正在工作,但免费功能却没有。我该如何解决这个问题,谢谢。

当我编译时: clang++ -std=c++2a hw1.cpp -o hw1 并运行: ./hw1

给出 5 作为输出。

0 投票
1 回答
92 浏览

c++ - 按类 C++ 的不同数据成员排序

所以,我基本上学习了 C++ 中的类和模板函数。假设我有一个班级学生的记录,包括他们的卷号、姓名和总分。我正在使用索引排序对记录进行排序。现在可以根据姓名、卷或总分进行排序。如何使用模板函数合并所有三个?

因此,我不想一次又一次地编写函数,而是想用 r[a[j]].roll 和 r[a[j]].total 替换 r[a[j]].name。那可能吗?

0 投票
1 回答
82 浏览

c++ - 如何声明返回在同一个类中使用的类实例的函数?

我已经尝试了几周并搜索了几天的答案,但没有找到。我的代码相当大且相互交织,但我的问题在于 3 个函数/类,因此我只会显示我的声明和相关信息。我有以下不兼容的代码:

我已经尝试了所有可以声明函数或类的可能性,但没有找到解决方案。起初我只在构造函数中使用了 search_in_file() 函数(现在与函数 fill() 存在相同的问题),并在类中声明和定义了 search_in_file() 函数。然后它像上面的代码一样工作(唯一的例外是朋友函数也是具有定义的实际函数)。但是我需要在没有声明 Word 对象的情况下使用该函数,因此它需要在类之外。我怎样才能让它工作?

我还应该指出,我还有另一个使用 Word 作为参数的非成员函数,并且该函数适用于上述解决方案。尽管它具有重载版本,但它不使用 Word 作为在类之前声明的参数,我认为这就是它起作用的原因。

0 投票
0 回答
24 浏览

c++ - what operators should be methods , friends, and non-member function?

I have searched for a specific answer for my question and i couldn't find one , so here is my question:

  1. I know that if we have operator+ and operator+= += should be a method and + a non-member function but what if we didn't have operator+= , should operator+ be friend then ?

  2. I also know that symmetrical operators should be 'non-members' and 'friends' if needed , and I can see how == != are symmetrical operators, but what about < , > , >= , <= are they symmetric? and why ? I mean A<B is not the same as B<A , so are they symmetric? should they be declared as non-members? friends?

0 投票
0 回答
41 浏览

c++ - 为什么字典比较运算符被假定为容器的非成员函数?

在查看 的文档std::map,我注意到字典比较运算符(映射之间)不计入成员函数。检查了一些其他容器(向量、列表等),也看到了同样的情况。这有什么原因吗?这些操作符不是在那些容器类中重载了吗?

是一个争论运算符重载的基本规则的相关答案。

0 投票
0 回答
17 浏览

c++ - 尝试使用非成员重载运算符但出现错误?

我正在尝试将 << 运算符重载为非成员重载运算符,以使其在对象的内容上打印数据。

Point2D.h

然后在 Point2D.cpp 文件中我有

但我的错误是