non-member-functions相关内容

在非成员函数中无效使用“this"

我曾在一个班级工作,并开始在同一个 .cpp 文件中编写所有内容.然而,过了一会儿,我看到这个类越来越大,所以我决定把它分成一个 .h 和一个 .cpp 文件. gaussian.h 文件: class Gaussian{私人的:双均值;双标偏差;双方差;双精度;双精度平均值;上市:高斯(双,双);~高斯();双归一化常数(双);高斯 fromPrecisionMean(double, d ..
发布时间:2021-12-31 23:02:56 C/C++开发

C++ 有免费的函数`size(object)`吗?

似乎大多数人找到 string 大小的方式是他们只使用 my_string.size() 并且它工作正常.嗯,我最近为我做过的班级做了一个作业... if (size(my_string) 而不是...... if (my_string.size() 但令我惊讶的是,我认为正在运行旧编译器的讲师无法运行该行代码.在我的编译器上,它是双向的,我不太确定为什么. 一个完整的程序(两者 ..
发布时间:2021-12-30 17:54:03 C/C++开发

运算符重载:成员函数与非成员函数?

我读到声明为成员函数的重载运算符是非对称,因为它只能有一个参数,而另一个自动传递的参数是 this 指针.所以不存在比较它们的标准.另一方面,声明为 friend 的重载运算符是对称,因为我们传递了两个相同类型的参数,因此它们可以进行比较. 我的问题是,当我仍然可以将指针的左值与引用进行比较时,为什么首选朋友?(使用非对称版本的结果与对称版本相同)为什么 STL 算法只使用对称版本? ..

C++:非成员函数和静态成员函数的区别?

这里有一个简单的问题:静态成员函数(即无需对象访问即可调用的函数(仅使用类标识符)和非成员函数)之间有什么区别?在这里,我从概念上和功能上都提出了要求. 非成员函数在概念上是静态的吗? 解决方案 静态成员函数可以访问类的私有部分和受保护部分.默认情况下,非成员函数不能这样做.只有当一个班级授予他们友谊时,他们才能做到这一点. 另一点需要考虑的是静态成员函数的名称在类的范围内.多 ..
发布时间:2021-08-30 18:35:18 C/C++开发

Python中的非成员函数与成员函数

我是Python的新手,努力使语言的功能与我从C ++和Java的背景中习得的习惯保持一致. 与封装有关的最新问题,特别是由Meyer的"有效C ++ "的第23条总结的一个最佳想法: 首选非-成员非朋友功能改为成员功能. 暂时忽略 friend 机制,是否也认为非成员函数比Python中的成员函数更合适? 一个强制性的asinine示例: class Vector(o ..
发布时间:2021-05-04 19:13:51 Python

没有运算符“>".与这些操作数匹配的操作数类型为:std :: istream>>双倍的

对于我的项目,我正在尝试为复数类创建一个免费函数.它在cpp文件中定义.该函数是重载的输入流运算符,但我不断收到错误消息 无运算符“>>";与这些操作数匹配的操作数类型为:std :: istream>>双倍的 在线 中的 z.real();在>>中z.imag(); 我制作了一个名为 complex.h 的文件,其中包含 complex 类和两个我想工作的重载运算符,即复数的构 ..
发布时间:2021-04-23 20:10:18 C/C++开发

我们将非成员函数放在C ++中的哪个文件中?

关于C ++中的非成员函数,通常的做法是什么?我们是将它们放在main.cpp还是头文件或类实现文件中,还是为它制作一个单独的.cpp文件?如果通常的做法是制作一个单独的文件,那么我们应该将非成员函数标头(原型)放在哪里?它是只进入main.cpp还是同时进入两者? 解决方案 我想说,您不应将非成员函数与类,成员函数和其他符号区别对待. 您应该为每个逻辑组件(模块). 所有公共 ..
发布时间:2021-04-19 20:36:40 C/C++开发

在C ++ 14中支持std :: cbegin()

Scott Mayers的“ Effective Modern C ++”中的第13条指出,与迭代器相比,const_iterators更受欢迎。我同意,但我也想使用非成员函数而不是成员函数。根据这本书,应该有一个非成员函数 std :: cbegin()和 std :: cend()在C ++ 14中。 要使用此功能,我刚刚安装了gcc版本4.9.2,并使用标志 -std = c ++ 1 ..
发布时间:2020-09-28 01:32:10 C/C++开发

C ++后缀/前缀运算符重载为非成员函数

我正在编写自己的数组类作为练习.因为,我读到的非成员函数实际上在某些方面比成员函数更好. (斯科特·迈耶斯) 我正在尝试编写尽可能多的非成员函数运算符重载. 运算符重载+,-作为非成员函数都可以正常工作. my_array operator+(const my_array & left, const my_array & right); my_array operator-(const ..

类VERSUS命名空间,还是类AND命名空间?

类和命名空间? 这个问题是关于一种我正在越来越多地使用自己的模式的问题:同时具有用于相关概念的类和名称空间.我认为这主要是由C ++语言工件引起的,但不是全部. 我想最主要的问题是:这是一个好主意吗?拥有相关概念的类和名称空间吗? 较低级别的问题: 做到这一点的最佳方法是什么? 嵌套在名称空间中的类?: namespace Foo_Namespace { ..
发布时间:2020-05-16 20:08:26 C/C++开发

通过反射从C#访问C ++非成员函数

我需要获得一些关于C ++程序的运行时信息,这是很困难的,因为C ++不提供一些复杂的反射机制。现在,我的方法是使用/ clr编译C ++代码,并从C#中反映出最终的汇编(因为我喜欢这种语言超过C ++)。 这是所有或多或少都很好,我现在停留在一个点,我需要实际运行程序通过调用其main方法。这是一个令人沮丧的考虑我有多远我已经... 这是有问题的C ++程序: #includ ..
发布时间:2016-10-30 17:03:46 C#/.NET

支持`std :: cbegin()`在C ++ 14

从Scott Mayers的“有效的现代C ++”项目13中可以看出,const_iterators优先于迭代器。我同意,但我也想使用非成员函数,而不是成员函数。根据书中应该有一个非成员函数 std :: cbegin()和 std :: cend()在C ++ 14。 为了使用这个函数,我刚刚安装了gcc版本4.9.2,并使用 -std = c ++ 14 。它似乎编译,直到我尝试使用 s ..
发布时间:2016-10-27 02:52:29 C/C++开发

c ++在Operator Overloaded函数中创建,分配和比较新变量到两个对象。

作业: 使用提供的Alien.h文件实现Alien类。在这种情况下,外星人根据他/她的身高,体重和性别来描述。要比较两个外星人,可以使用以下公式来确定外星人的statusPoints值: statusPoints = weight * height * genderValue 其中,如果外星人是男性,genderValue为2,如果外星人为女性,则为3。状态点应在需要时计算,而不保留为数 ..
发布时间:2016-10-25 16:42:55 C/C++开发

c ++在Operator Overloaded函数中创建,分配和比较新变量到两个对象。

作业: 使用提供的Alien.h文件实现Alien类。在这种情况下,外星人根据他/她的身高,体重和性别来描述。要比较两个外星人,可以使用以下公式来确定外星人的statusPoints值: statusPoints = weight * height * genderValue 其中,如果外星人是男性,genderValue为2,如果外星人为女性,则为3。状态点应在需要时计算,而不保留为数 ..
发布时间:2016-10-25 16:27:04 C/C++开发