问题标签 [friend-function]
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++ - Cpp 运算符重载
我在一些书中看到赋值运算符,函数调用运算符等可以通过使用成员函数而不是通过友元函数重载。为什么某些运算符不能通过使用友元函数重载?
matlab - Matlab中的友元函数
我正在使用OOP现象在Matlab中工作,但是我想要一种友元函数的现象,例如,将一个函数的输出传递给同一类中的另一个函数,以供其使用。这是我的课,其中,需要一个输出,我怎样才能让这两个函数成为朋友。有没有像其他语言一样的设施?C/C++
myClass
myFunc1
myFunc2
我的代码:
c++ - 创建好友模板函数时出现意外错误
伙计们,我正在尝试为我的类 SortedList 创建一个模板。我想重载 << 运算符,所以我在类中声明了一个友元函数,但每次我尝试编译 main.cpp 时都会出现以下错误:template-id 'operator<< ...' does not match any模板声明。这是来自 main.cpp 的代码
这是模板类的声明和定义
c++ - 您可以参考结构内定义的朋友运算符吗?
使用友元运算符习语:
我基本上想要operator+
for的函数指针Foo
。
我Bar
可以说以下几点:
但是,如果我对Foo
版本执行相同操作,g++ 和 clang++ 会通知我:
这本质上是不可能的,还是有办法引用该函数?
c++ - Eclipse 好友可见性
我对 Eclipse Kepler 有疑问。在头文件中,我声明了一个类和友元运算符<<:
在源文件中我实现它:
代码编译并运行良好,但编辑器中的 Eclipse 在行显示错误“成员函数'n_'不可见”
如果我在 Foo.h 中实现该功能,Eclipse 不会显示错误。哪个是问题?谢谢!
c++ - Clang:类中定义的友元函数
我有一个类,它在类中声明和定义了一个友元函数,我从类中的另一个函数调用这个函数。Clang 编译器 (3.3) 抱怨友元函数的未声明标识符。我已经用 MSVC 和 gcc 编译了这段代码,它适用于两个编译器,但现在使用 Clang 端口我遇到了这个问题。这是问题的简化示例:
在 Clang 中,我得到:error : use of undeclared identifier 'bar'
。如果我在类外声明/定义 pla(),它可以正常工作,但是我有一些宏迫使我在类中定义函数。这是 Clang 中的一些已知问题,还是 Clang 在仍然符合 C++ 标准的同时对 C++ 名称查找更加迂腐?在类中定义/声明函数时是否有一些已知的解决方法?
c++ - 在 C++ 中使用友元函数进行 I/O 运算符重载
我正在自学 C++。我正在研究运算符重载,我能够理解加减运算符重载。但是 I/O 操作符的重载有点令人困惑。我为复数创建了一个类,现在我正在重载运算符。
来自 Complex.h 的函数原型
来自 Complex.cpp 的函数
- 谁能解释(在基本层面上)为什么我们必须在这里使用友元函数声明?
- 为什么我们必须通过引用传递所有参数和运算符的返回类型?
- 这个函数在不使用 const 的情况下也能正常工作,但为什么我们在这里使用 const 呢?将 Complex 作为常量引用传递有什么好处?
c++ - C ++中的朋友保护方法
我有一个必须在其他类 Bar 中“直接”访问的类 Foo。我想构建一个小框架,声明 Bar 的方法(它是 Foo 的友元方法)受保护。通过这种方式,我可以构建几个 Bar 的子类。
Gcc 对此抱怨,并且仅当该方法是公开的时它才有效。
我能怎么做?我的代码示例:
海合会消息:
c++ - 从友元函数内的对象访问成员函数
下面的代码是距离类的一部分。运算符重载是一个友元函数,声明为 Distance 类的私有成员,而我尝试调用的函数是公共成员。此函数不会更改 Distance 类的成员变量。
我试图保持两个引用调用对象 d1 和 d2 不变,但我的编译器说我通过调用 ConvertToInches 函数或位于距离类中的任何函数违反了它们的 const 属性,尽管这些函数不会更改私有变量在距离类中。
当我不使 d1 和 d2 保持不变时,编译器没有问题。
谁能解释在调用此函数时如何使 d1 和 d2 保持不变以及为什么我所拥有的不起作用?
谢谢!
c++ - 一个类成员函数调用一个类友函数(都是同一个类) 可能吗?
我有一个包含成员函数和私有数据的非常基本的类,但我希望打印函数不成为类成员函数的一部分。我从类中删除它并将其声明为朋友,当直接从 main.cpp 调用它时它可以工作,但是当类成员函数在内部调用它时它没有被声明。我知道作为朋友可以访问数据,但我如何使其对成员函数可用?是否可以?