问题标签 [ownership]

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 回答
218 浏览

objective-c - 何时以及何时不为对象分配内存

我在目标 C 代码中经常看到这两种方法。当我试图理解时,我发现它们都用在类似的情况下,这就产生了矛盾。我不清楚何时应该使用第一种方法以及何时使用第二种方法?任何想法?

欢迎妈妈们详细的解释和有用的参考。

0 投票
1 回答
332 浏览

winapi - GetFileSecurityW 总是返回 File not found

即使可以使用 CreateFileW 获取文件句柄,从 VBA 调用 GetFileSecurityW 总是返回“找不到文件”。下面的例子

UNC 文件路径的调试输出为

0 投票
1 回答
395 浏览

objective-c - 目标 C 新手:需要帮助理解强引用与分配

第一篇文章。对不起,如果我搞砸了代码规则。我正在尝试从 Big Nerd Ranch Guide 中学习 Objective C。我将发布处理强引用的示例。

所以基本上 NSString 需要一个强引用,而 int 不需要。我知道 NSString 是一个对象,并且我读过如果没有指定任何变量,则为变量赋予 assign 属性。

因此,如果 assign 足以让 int 之类的东西在拥有它的对象被释放之前不被释放,那么为什么不能让 Asset 对象中的 NSString 对象不被释放呢?最终,我想我仍然对 assign 在引用计数方面的作用与 strong 的作用感到困惑(或者我应该说 retain ,因为这是在 ARC 中替换的 strong )。

0 投票
1 回答
284 浏览

wpf - WPF 阻止使用所有者窗口

我正在使用带有 C# 的 WPF。我有一个全屏的窗口。在这个窗口上,我打开一个对话框。我的对话框只是另一个设计不同且以该所有者为中心的窗口。

在第一个对话框中,我有一个按钮可以关闭此对话框但会打开另一个对话框。我是这样实现的:

不管第一个对话框是用 Show 还是 ShowDialog 调用的,第二个对话框都不是 TopMost,也就是说后面显示的我的主窗口是可以点击的。

我得到的是,当此对话框以主窗口为中心打开时,用户可以单击主窗口上暴露的后按钮(对话框未覆盖)。

我怎样才能阻止这种情况发生?

0 投票
2 回答
239 浏览

c++ - 从列表中添加和删除自身的对象

我有一个小的类层次结构,我试图找出一种简单的维护所有权的方法。由于这些对象驻留在堆上,而且我讨厌原始指针,我想我将使用 boost 共享指针和弱指针。(我对替代方案持开放态度,但这是我习惯的。)共享指针有助于所有权,因为当共享指针的所有者这样说时,弱指针不会阻止对象被删除。

层次结构:

那里还有一些其他的课程。我可以使用虚拟继承来处理钻石继承,所以这没什么大不了的。另外,我将为它们中的每一个键入一些 shared_ptrs 和 weak_ptrs。

我的想法是让 Actor 维护一个 Actor 共享指针(ActorPTR)的静态列表,并让子类维护弱指针(BodyWPTR 等)的静态列表。这样就有一个共享指针的明确集合,所以应该管理一些某种所有权(我会尽量不要在其他任何地方永久存储共享指针。)拥有这些列表很方便,因为我可以很快地说,“让我附近的所有战斗人员”或“移动所有尸体”。

我希望对象将自己插入到正确的列表中:Body 会将自身的弱指针插入到 body 弱指针列表中,并将 Actor 共享指针插入到该列表中,这可能在构造函数中完成。但是(显然)在构造函数中使用“this”指针(或它的 shared_from_this() 等效项)是不好的。我能想到的唯一其他方法是通过一大堆工厂方法。我还认为层次结构中的多个类从 enable_shared_from_this 继承是不好的。

如何让对象在其构造函数期间自动将指向自身的共享或弱指针插入到列表中?这是个坏主意吗?

(同样在上面的“代码”中,我可能弄乱了虚拟继承语法,但这不是我现在关心的,所以不用担心。)

谢谢!

0 投票
3 回答
2090 浏览

google-apps-script - Google Apps 脚本的所有权

我正在开发一个协作 Intranet 站点,但我在 Google 站点中遇到了 Google Apps 脚本的问题。当我开发时,我与我的用户帐户相关联。但是,我编写的所有脚本都将在我的帐户上下文下执行,但我希望我的脚本可以访问另一个帐户的上下文。例如,我编写了一个脚本,可以为您提供 Gmail 中未读邮件的数量。但是此脚本将始终给出作为脚本所有者的帐户的未读邮件数。你可以理解这对我来说是一个严重的问题。

我希望你能帮助我,因为我不知道这是否可能以及我该怎么做。

非常感谢。

0 投票
1 回答
95 浏览

c++ - 将抽象基类作为成员处理时的所有权问题

在构造函数中将类作为参数传递时,在大多数情况下,我最终会传递指针。主要原因是我必须传递无法实例化的抽象类,并且作为引用不能为空,我真的没有选择......

这是一个例子:

在某些情况下,我想C处理指向的A对象_a(删除时删除它),在其他情况下,我想C删除_a而不删除A对象。

拥有完善的编程方法的最佳实践是什么?

0 投票
1 回答
158 浏览

c++ - 成员拥有参数所有权

对于成员拥有参数的问题,我看到了两种合理的解决方案:

其中哪个更惯用、更易于理解、更易于调试、更易于维护等?

我错过的问题是否有其他解决方案?

0 投票
1 回答
144 浏览

ruby-on-rails - 这里的新手:同一张表的冲突关联。has_many:发票,has_many:发票,通过:user_invoice_viewers

这在这里看起来很基本,但实际上我发现用 Rails 定义这个场景有点苛刻......

也许你们中的任何人都可以提供一些指导?

所以我有三个表,用户、发票和 User_Invoice_Viewers(这些基本上映射了可以查看发票的用户)

现在我的模型:

用户.rb:

发票.rb

User_Invoice_Viewers.rb

现在这似乎是错误的......我在用户模型上重复 has_many :invoices,所以我预计执行时会发生冲突:User.invoices ...

什么是最好的解决方案?我曾想过将其全部放在 user_invoice 表上,但由于我希望拥有比查看者更多的所有者,出于性能原因,我决定在发票与其所有者之间建立直接依赖关系......

谢谢

0 投票
5 回答
711 浏览

java - 一个对象拥有另一个对象

目前我正在使用 Java 设计一个大富翁游戏。

游戏中的每个玩家都可以拥有不同的属性。我遇到的问题是如何为每个玩家分配不同的属性对象。我有一个 Player 类和一个 Properties 类。组合是最好的方法吗?如果是这样,我会怎么做?