问题标签 [friend]
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++ - 无法从朋友类访问成员
我有这样的声明
但是我从 PtPathWriter 那里得到一个错误说
有趣的是,如果我使用备用朋友声明(明确指定方法)它是否有效?关于为什么它们不同的任何想法?
顺便说一句,使用英特尔 C++ 编译器 11.1.065。
c++ - 朋友、模板、重载 << 链接器错误
我对之前的一篇文章有一些很好的了解,但我不知道这些编译错误意味着我可以使用一些助手。模板、朋友和重载都是新的,所以 3 in 1 给我带来了一些问题......
点.h
点.cpp
主文件
drupal - 我正在尝试使用 PHP 代码在基于 Friendlist 的 Panels3 中实现面板可见性
我试图获得一个真值来获得面板可见性。我在面板中有一个视图来显示属于用户的心跳消息列表。显示工作,但我不知道如何根据正在查看面板的用户限制对面板的访问。目标是我希望面板只对朋友和某些具有特定角色的人可见。我可以处理的角色,但我对 PHP 的了解还不够,无法根据友谊状态使其工作。我隐约猜想它会是这样的:
登录用户是双向的,用户根据当前 uid 参数被查看。
我知道我的示例与实际代码完全不同,但正如我所说,我在这里没有太多可做的。
c++ - 如何为具有相同模板的模板类定义和使用友元函数?
我写了以下代码:
并得到以下错误:
怎么了?
PS 我正在使用 Visual Studio 2008。
vb.net - VB.NET 视觉继承:Friend VS Protected
如果使用访问修饰符 Friend 声明某些组件/控件与使用 Protected 声明时,为什么某些组件/控件不会在子窗体中以可视方式继承。
例如,我的父窗体中有一个最初是“朋友”的 DataSet 对象(我将它拖放到窗体中,因此它在设计器视图中显示为控件),但我注意到我的子窗体没有按预期继承控件。一旦我将其更改为“受保护”,它就会按预期显示在我的子表单中。
我知道受保护的允许子窗体修改继承的控件,但这与我上面描述的问题有什么关系呢?
c++ - 在 C++ 中,向一个类添加一个朋友会改变它的内存布局吗?
另外,在课堂上的哪个位置声明朋友是否重要?添加朋友类或朋友功能是否重要?
f# - F# 朋友函数/类
是否可以在 F# 中实现友元函数和友元类(如在 C++ 中)?
更新:由于 f# 中没有友元函数/类,而且friend 甚至不是未来扩展的保留关键字,我想知道 F# 中的友元机制是否有任何问题让开发人员决定不实现它? (例如在“受保护的”访问修饰符中)。
建议 1:Brian,签名文件——我认为这东西不能正常工作。如果您有一个评估 BX 的闭包(例如,A 中的 lambda 表达式,它是与 A 的实例不同的对象),它将不起作用
建议 2:Massif (+Mitya0),InternalsVisibleTo - 我不清楚,你是在第二节课上写这个,还是把这个课暴露给整个程序集?
sql - 将“朋友”与帐户持有人资料链接
我正在设计一个帐户持有人有“朋友”的应用程序。我将如何将这些朋友与原始帐户持有人联系起来?一个高效的 SQL 表会是这样的:
c++ - 干净的 C++ 颗粒朋友等价物?(答案:律师-客户成语)
为什么 C++ 有public
任何人都可以调用的成员和friend
将所有 private
成员公开给给定的外部类或方法但没有提供将特定成员公开给给定调用者的语法的声明?
我想用一些例程来表达接口,这些例程只能由已知的调用者调用,而不必让这些调用者完全访问所有私有,这感觉像是一件合理的事情。到目前为止,我自己能想到的最好的(下)和其他人的建议都围绕着不同间接性的习语/模式,我真的只是想要一种方法来拥有单一、简单的类定义,明确指示调用者是什么(比我更细化,我的孩子,或绝对任何人)可以访问哪些成员。表达以下概念的最佳方式是什么?
我离成为软件组织专家还差得很远,但感觉界面的简单性和最小特权原则在语言的这方面直接不一致。对于我的愿望,一个更清晰的示例可能是Person
具有声明方法的类,例如takePill(Medicine *)
tellTheTruth()
,forfeitDollars(unsigned int)
只有Physician
、Judge
或TaxMan
实例/成员方法,甚至应该分别考虑调用。每个主要接口方面都需要一次性代理或接口类让我感到不舒服,但如果你知道我遗漏了什么,请说出来。
Drew Hall接受的答案:Dr Dobbs - Friendship and the Attorney-Client Idiom
上面的代码最初将包装类称为“代理”而不是“律师”,并使用指针而不是引用,但在其他方面与 Drew 发现的相同,然后我认为这是最广为人知的解决方案。(不要太用力地拍自己的背……)我还更改了“restricted”的签名来演示参数转发。这个习惯用法的总成本是每个权限集一个类和一个朋友声明,每个批准的调用者一个朋友声明,每个权限集每个公开的方法一个转发包装器。下面大多数更好的讨论都围绕着转发呼叫样板,一个非常相似的“关键”习语以较少的直接保护为代价避免了这种样板。
c++ - 这种面向密钥的访问保护模式是已知的惯用语吗?
Matthieu M.在我以前见过的这个答案中提出了一种访问保护模式,但从未有意识地考虑过一种模式:
这里只有一个friend
关键类可以访问protectedMethod()
:
Foo
它允许比制作更细粒度的访问控制friend
并Bar
避免更复杂的代理模式。
有谁知道这种方法是否已经有了名字,即,是一种已知的模式吗?