问题标签 [friend-class]
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++ - c++思维中遇到的友元迭代器和友元类迭代器有什么区别?
在 Thinking in C++ Volume 1,第 16 章:模板简介。上下文:
请注意,不要只是说:
这段代码有:
这很重要,因为名称“迭代器”已经在范围内,来自包含的文件。
Eckel 上面的真正含义是什么?它似乎friend iterator
编译正确,我看不出差异。谁能告诉答案?谢谢
javascript - javascript中的“朋友类”
我有一个创建 Widget 对象的工厂类。Factory 对象需要稍后回调 Widget 对象的“私有方法”,以向其传递一些 ajax 信息。到目前为止,我想出的唯一实现是在 Widget 中创建一个公共方法,将私有方法返回给工厂,然后删除自己,然后工厂返回新的 Widget,同时保留指向私有方法的指针. 这是一个简化的示例:
有没有更好的方法来达到我想要的效果,或者这是一个相当合理的方法?我知道它有效,只是好奇我是否正在踏入我应该注意的任何陷阱。
c++ - 为什么朋友类在静态函数调用时崩溃?
此代码编译,但使用 gcc 编译器或http://www.ideone.com/程序崩溃。这是编译器错误还是我需要了解更多关于朋友类的信息?
c++ - 朋友班不适合我?
我friend class
第一次尝试处理。我写了下面的代码:
编译器告诉我不能做root.x=3;
,有什么问题??
c++ - 朋友类概念如何不需要出面声明?
我最近刚刚了解friend class
了 C++ 中的概念(我用谷歌搜索了一下,但这个答案让我发笑,直到我记住了最重要的部分),我正试图将它融入我的项目中现在正在工作。简洁的问题最后被挑出来,但总的来说,我对我的工作代码中完全缺乏前向声明感到困惑。
我的所有类都通过(子)文件夹分开,每个类都放在单独的.h和.cpp文件中,但这应该足以让您了解依赖关系:
现在,我已经让所有这些都与所有依赖项一起实际编译(最终必须将其写到类图中才能使其工作),但现在它可以了。实际上让我感到困惑的事实是不需要前向声明。我知道以前的前向声明,以防万一,我用这个答案刷新了我的记忆。
所以,为了清楚起见,我的问题是:当声明class TLS
为朋友时,为什么不需要明确的前向声明?这是否意味着friend class
声明本身就是一个前向声明?对我来说,直觉上,这里缺少一些东西......而且由于它可以正常编译和工作,有人可以帮助纠正我的直觉吗?:D
PS很抱歉对这个问题和一堆代码进行了如此冗长的介绍。请不要评论我的代码概念 - 朋友们在这里很好,我很确定这对我当前的项目是正确的(从这个骨架中很难看出)。我只想知道为什么在任何地方都不需要前向声明。
c++ - C++ 模板:部分模板规范和友元类
是否有可能以某种方式使部分模板规范成为朋友类?即考虑你有以下模板类
现在你有了部分特化,例如指针
我想要完成的是,每一个可能X<T*>
都是X<S>
for ANY的朋友类S
。即X<A*>
应该是的朋友X<B>
。
当然,我想到了 X 中常用的模板友元声明:
但是,这不会编译,g++ 告诉我:
test4.cpp:34:15:错误:“ template<class T> class X
”的特化必须出现在命名空间范围内
test4.cpp:34:21:错误:部分特化“ X<S*>
”声明为“朋友”
这根本不可能,还是有一些解决方法?
我问的原因是我需要一个构造函数来X<T*>
从任意创建此类X<S>
(S
必须是 的子类型T
)。
代码如下所示:
现在,编译器当然会抱怨,这x.t
在构造函数中是不可见的,因为它是私有的。这就是为什么我需要一个部分专业化的朋友班。
c++ - 为什么我们在这里需要一个“朋友”?(C++)
qml 查看器(适用于 4.8 和 5.0)是这样实现的:
在 .h(eader) 我们有:
然后在 .CPP 文件中:
为什么friend
在这里使用是必要的?我看不出任何人为什么要使用friend
课程。朋友课程有什么真正用途吗(除了任何人都可以没有的外来生物)?
.h #包括
.cpp
c++ - 重载运算符为友元
我对使用这个词有一个想法friend
,可以访问除自己的类之外的私有成员。例如,我有一个 A 类,需要在 AI 的方法中访问 B 类属性的私有方法,可以将该方法声明为友元。
但是,请参阅以下代码:
作为朋友,哪些好处可能会使操作员超负荷?我真的不明白为什么有人会对它感兴趣。
我已经阅读了很多关于它的内容,但我没有一个明确的想法。
有人可以写一个我可以观察到事实的小例子吗?
c++ - 在 C++ 中使用友元函数
刚刚阅读了朋友函数,我正在尝试使用 B 类的朋友函数“打印”访问 A 类中的私有变量“数字”。我正在使用 Visual Studio。我的代码的编译给了我很多各种各样的错误,比如:
C2011:“A”:“类”类型重新定义
C2653:“B”:不是类或命名空间名称
请耐心等待我,并展示实现我目标的正确方法。
这是我的文件啊:
A.cpp:
乙:
B.cpp:
主.cpp: