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

0 投票
4 回答
159 浏览

c# - 帮助消除朋友/内部人员

我经常看到有人说“如果你需要朋友/内部那么你的设计是错误的”,有人可以告诉我如何重新设计以下代码以消除 ChessPiece.Location 中的内部?

目前使用它是为了向 ChessBoard 添加棋子设置 ChessPiece.Location 属性以匹配,显然将其公开会比内部更糟糕,并且将其设为私有会阻止 ChessBoard 更新位置。感谢您的任何见解。

0 投票
4 回答
6024 浏览

c++ - 朋友功能

对于Friend Functions
下的示例 ,以下内容如何成立?

“请注意,无论是在duplicate() 的声明中还是在其后来在main() 中的使用中,我们都没有考虑重复CRectangle 类的成员。它不是!它只是可以访问其私有成员和受保护成员而不是成员。 "

Duplicate 在 CRectangle 的公共部分中声明。它怎么不是成员函数而 set_values 是?

这是一个很好的例子吗?没有的话有更好的吗?

0 投票
2 回答
3254 浏览

c++ - 模板友谊

我正在尝试使用不同的模板参数访问模板类的受保护变量。带有模板参数的朋友声明给出以下错误:

不允许使用多个模板参数列表

我的代码是

如果我删除保护和朋友声明,它会起作用。

0 投票
2 回答
1258 浏览

xml - VB.net 中的 XML 序列化友元类

我在 VB.net (2005) 中有一些类(大约 15 个左右),我希望能够序列化为 xml。不幸的是,它们被标记为朋友类,并且不能暴露在程序集之外。

该程序集是一个 dll,它是 CAD 系统的 com 互操作插件。我已将我所有的班级设置为朋友,这样他们就不会暴露在大会之外以供第 3 方使用。我想知道我是否需要这样做。将类设置为 public 可以让我序列化事情。但是我不希望人们链接到程序集并使用这些类。

我是否应该担心其他程序链接到我的程序集?事实上,我认为这种情况发生的可能性不大。我只是不喜欢让我的几乎所有课程都具有公共范围的想法。

有没有办法让朋友类可序列化?还是我应该把事情公之于众?

干杯,特洛伊

0 投票
1 回答
1150 浏览

c++ - Friend 类及其所有后代

假设我有一个有几个子类(B、C 和 D)的 A 类。我需要 BC 和 D 来访问 E 类中的一些受保护成员。是否可以一次性使 E 的 B、C 和 D 成为朋友而不必全部列出?

我尝试过:

但这不起作用。

谢谢

0 投票
3 回答
1105 浏览

c# - 什么是程序集的“AllInternalsVisible”参数:InternalsVisibleTo 属性?

我的 IntelliSense 在声明中提出了一个名为“AllInternalsVisible=”的布尔值参数[assembly:InternalsVisibleTo("AssemblyName")]。只需将光标放在第二个双引号之后,然后按 Ctrl-空格键。那是什么 - 我在 MSDN 上找不到任何关于此的文档。我正在使用 VS2005 和 .Net 2.0。

作为一个相关主题,我正在对朋友程序集进行一些研究,我认为一旦您授予朋友程序集对内部的访问权限,该朋友程序集就可以访问所有内部,并且您无法真正了解它。这是真的,还是有一种方法(如上所述)可以授予朋友程序集访问某些内部类型/成员但不是全部的权限?

0 投票
5 回答
1498 浏览

c++ - pimpl 成语和模板类朋友

我正在尝试使用 pimpl 习惯用法来隐藏一些蹩脚的模板代码,但我不能让 body 类的派生类访问句柄类。我从 MSVC 9 sp1 收到错误 C2248。这是一些复制错误的代码:

任何帮助将不胜感激,我试图向用户隐藏interface::bodyspecific_body实施,interface如果这在我的问题中并不明显。

0 投票
1 回答
8661 浏览

selector - FBML multi friend selector in fb:dialog

Is there a way to show the multi friend selector widget (fb:multi-friend-selector) in an fb:dialog?

I have a button, on selecting which I would like to show the friend selector popup and users can send invite to their friends. I got the friend selector working on the main page but have no clue on how to display that widget in fb:dialog.

Thanks Jugs

0 投票
4 回答
441 浏览

c++ - 友谊范围 C++

在“C++ 编程语言”的第 11.5.1 节中,Bjarne Stroustrup 写道:

与成员声明一样,友元声明不会将名称引入封闭范围。

例如:

对于大型程序和大型类,一个类不会“悄悄地”将名称添加到其封闭范围是很好的。对于可以在许多不同上下文中实例化的模板类(第 13 章),这非常重要。

然而,下一节接着说这个类必须是先前定义的,或者定义在非类范围内,立即包含声明它为友元的类。

我的问题是,由于该类需要预先定义或定义在非类范围内立即封闭声明它为朋友的类,因此在第一个示例Xform中不能超出范围,因为大概类会在定义类之前已经定义了Matrix。此外,鉴于朋友类需要预先定义或在授予者类之后立即定义的限制,我想不出这样的情况,朋友类将不在范围内!

其次,我在本节中对 Bjarne 的解释是否正确,因为:

  • 仅对于友元类,友元类必须先前已在封闭范围中定义,或者在非类范围之后立即定义。
  • 对于一个函数,必须先前已在封闭范围内声明,或者也可以通过具有类型 == '友谊授予者' 类的参数来找到它?
0 投票
4 回答
2265 浏览

c++ - 按键擦除矢量元素

我定义了以下内容并用元素填充它:

但我想要删除具有特定键的元素...

但它不允许我。我将如何正确处理分配给该键的元素?