问题标签 [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++ - C++ 友元函数
我的问题很简单。我正在学习朋友功能,但这由于某种原因不起作用。如果我用 Window_Mgr 类交换屏幕类,然后添加屏幕类的前向声明,它只会说。它不起作用是因为屏幕在那个时间点不知道“重新定位”的存在吗?
c++ - 将“operator<<”声明为非函数
我已经尝试了一切,我不明白为什么它不起作用。
g++ 抛出:
Queue.H:53:错误:将“operator<<”声明为非函数
Queue.H:53:错误:预期 â;â 在â<â 标记之前
Queue.H:59:错误:预期 â;â 在“private” 之前
代码是:
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
c++ - 命名空间内的友元函数声明/定义
考虑命名空间内的一个类。类的定义声明了一个友元函数。
根据我所知道的,这应该声明baz()
为最里面的封闭命名空间的成员,即Foo
.
因此,我希望以下定义baz()
是正确的:
但是,GCC (4.7) 给了我一个错误。
几种解决方案似乎有效:
/li>baz()
在课外声明。在命名空间内定义
/li>baz()
。使用标志进行编译
-ffriend-injection
,从而消除错误。
这些解决方案似乎与我所知道的 C++ 中声明/定义的一般规则不一致。
为什么要申报baz()
两次?
为什么定义仅在命名空间内是合法的,而在范围解析运算符中是非法的?
为什么标志消除了错误?
c++ - 未在此范围错误中声明的友元函数
嗨,我正在尝试了解友元函数的范围,但出现“未在范围内声明”错误。这是我的代码:
我在 node.cpp 中收到错误“添加未在此范围内声明”。当我在类范围内声明函数时,为什么会出现此错误?任何帮助将不胜感激。谢谢
c++ - 运算符重载 >> 和私有成员
请在标记为重复之前阅读
我正在重载运算符 >> 和 << 以读取具有实部 r 和虚部 i 的复数;
错误是代码部分无法访问 r 和 i
din>>x.r;
din>>x.i;
错误是 r 和 i 是私有的,因此无法访问正常的友元函数不能访问私有变量。为什么它只对 >> 失败?
注意: << 运算符工作正常。只有 >> 失败
c++ - C ++友元函数不起作用
我是 C++ 新手,并且一直在尝试了解 C++ 中的类。最近我试用了这个程序,它没有返回整数 9,而是返回了一些垃圾值。有人可以帮我吗
c++ - c++内联友元函数与成员变量同名
这让我很惊讶。这有效:
但这是一个错误:
为什么这两个(禁止)都不允许?
c++ - 我们可以声明一个没有参数的友元函数吗?
是否可以?
friend
没有参数的函数!
在我看来不可能
因为友元函数不是类的“成员”所以我们不能用类对象调用
像:
c++ - 模板友元函数实例化
为什么我会收到以下链接器错误?
我得到的错误是: