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

0 投票
2 回答
213 浏览

c++ - C++ 友元函数

我的问题很简单。我正在学习朋友功能,但这由于某种原因不起作用。如果我用 Window_Mgr 类交换屏幕类,然后添加屏幕类的前向声明,它只会说。它不起作用是因为屏幕在那个时间点不知道“重新定位”的存在吗?

0 投票
2 回答
764 浏览

c++ - 将“operator<<”声明为非函数

我已经尝试了一切,我不明白为什么它不起作用。

g++ 抛出:

Queue.H:53:错误:将“operator<<”声明为非函数

Queue.H:53:错误:预期 â;â 在â<â 标记之前

Queue.H:59:错误:预期 â;â 在“private” 之前

代码是:

0 投票
1 回答
1848 浏览

c++ - C++ 重载运算符同时作为成员和函数?

C++ 重载运算符同时作为成员和函数?我正在尝试在这里设置运算符重载。

在每种情况下,我都没有将 operator+ 重载为朋友和成员的问题。但是,当我尝试同时将 + 运算符作为朋友重载和将朋友作为成员重载时,我得到了错误。

这里有点困惑。我可能会尝试做一些甚至没有意义的事情?请检查我的代码,看看我是否可以解决。情况 3 是产生错误的情况。谢谢!

CASE1重载为朋友:Source.cpp

CASE1作为朋友重载:Time.h

CASE1重载为朋友:Time.cpp

CASE2作为成员重载:Source.cpp / Time.h / Time.cpp Source.cpp // 相同

时间.h

时间.cpp

案例3:错误;试图同时重载运算符 + 作为朋友和成员 Source.cpp // 相同

时间.h

时间.cpp

0 投票
2 回答
2627 浏览

c++ - 命名空间内的友元函数声明/定义

考虑命名空间内的一个类。类的定义声明了一个友元函数。

根据我所知道的,这应该声明baz()为最里面的封闭命名空间的成员,即Foo.

因此,我希望以下定义baz()是正确的:

但是,GCC (4.7) 给了我一个错误。

几种解决方案似乎有效:

  • baz()在课外声明。

    /li>
  • 在命名空间内定义baz()

    /li>
  • 使用标志进行编译-ffriend-injection,从而消除错误。

这些解决方案似乎与我所知道的 C++ 中声明/定义的一般规则不一致。

为什么要申报baz()两次?
为什么定义仅在命名空间内是合法的,而在范围解析运算符中是非法的?
为什么标志消除了错误?

0 投票
3 回答
6173 浏览

c++ - 未在此范围错误中声明的友元函数

嗨,我正在尝试了解友元函数的范围,但出现“未在范围内声明”错误。这是我的代码:

我在 node.cpp 中收到错误“添加未在此范围内声明”。当我在类范围内声明函数时,为什么会出现此错误?任何帮助将不胜感激。谢谢

0 投票
1 回答
4435 浏览

c++ - 运算符重载 >> 和私有成员

请在标记为重复之前阅读

我正在重载运算符 >> 和 << 以读取具有实部 r 和虚部 i 的复数;

错误是代码部分无法访问 r 和 i

din>>x.r; din>>x.i;

错误是 r 和 i 是私有的,因此无法访问正常的友元函数不能访问私有变量。为什么它只对 >> 失败?

注意: << 运算符工作正常。只有 >> 失败

0 投票
2 回答
1358 浏览

c++ - C ++友元函数不起作用

我是 C++ 新手,并且一直在尝试了解 C++ 中的类。最近我试用了这个程序,它没有返回整数 9,而是返回了一些垃圾值。有人可以帮我吗

0 投票
1 回答
666 浏览

c++ - c++内联友元函数与成员变量同名

这让我很惊讶。这有效:

但这是一个错误:

为什么这两个(禁止)都不允许?

0 投票
9 回答
4599 浏览

c++ - 我们可以声明一个没有参数的友元函数吗?

是否可以?

friend没有参数的函数!

在我看来不可能

因为友元函数不是类的“成员”所以我们不能用类对象调用

像:

0 投票
1 回答
221 浏览

c++ - 模板友元函数实例化

为什么我会收到以下链接器错误?

我得到的错误是: