- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
假设我有一个类 myClass < handle
.来自 Mathworks Help page on clear
,
Clearing handle graphics handles does not remove the objects themselves, nor does deleting the objects remove variables storing their handles.
hf = figure; % Creates figure object, stores handle in variable hf
delete(hf) % Removes figure object, but not the variable hf
clear hf % Removes hf from the workspace; figure could still exist
所以 clear
除非我明确 delete
,否则处理句柄对象不会将其从内存中删除它首先..
我为 myClass
指定了一个析构函数进行适当的清理并删除对它的一些引用;未调用此析构函数 clear
.是否可以在我的对象被清除时调用该析构函数?
编辑:我应该提一下 delete
使用 clear
自动调用如果没有对 myClass
的引用对象,我还有一个类,比如说 myOtherClass
具有引用 myClass
的属性,说 myOtherClass.a
. myOtherClass
中还有其他属性这不是 myClass
的属性, 但如果 myOtherClass.a
它们应该是空的也是空的。如果这没有意义,请告诉我,这可能有点太罗嗦了。
最佳答案
清除对句柄类对象的所有引用会将其从内存中删除,并且在对象被销毁时将自动调用 myClass
上的 delete
方法。不幸的是,这只是令人困惑的术语。您的 myClass
是一个“MCOS 类”或“MCOS 对象”,而不是像 help clear
所说的那样的“处理图形对象”。它们是不同的东西,至少在 M 代码级别。
句柄图形“对象”与您的 myClass 不是同一类型的“对象”,figure()
返回的“句柄图形句柄”与您从中继承的名为 handle
的类。 help clear
中关于“处理图形句柄”的段落不适用于您的对象。请参阅 doc handle
并点击相关 doco 的 delete
方法的链接。
不要难过; Matlab doco 并没有把这些区别说得很清楚。 (IIRC 它甚至没有明确使用术语“MCOS”;它只是称它们为“对象”。)基本上,doco 中“面向对象编程”部分下的 Material 与“对象”的种类相关,并且“处理”您正在处理的 myClass
。 “图形”和“GUI 开发”下的 doco 正在谈论另一种处理图形的“对象”和“句柄”。我认为他们使用术语“句柄”来表示句柄图形内容,使用“句柄类”来表示 OOP 内容。
要验证您的delete
是否有效,只需创建一个简单的类即可。
classdef myClass < handle
methods
function delete(obj)
disp('delete was called');
end
end
end
然后创建一个并清除它。
>> x = myClass
x =
myClass handle with no properties.
Methods, Events, Superclasses
>> clear x
delete was called
>>
如果您的析构函数未被调用,则可能存在对该对象的其他引用。每次清除保存对象引用的变量时都不会调用析构函数,只有在清除最后一个保存引用(或间接引用)的变量时才会调用。
关于MATLAB - 使用 'clear' 时运行对象析构函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7236649/
谁能告诉我为什么 的技术原因在 app.config 与 中无效 通常这样使用: 问题是我正在使用安装程序产品 (InstallShield) 将 xml 转换为 app.config
在Linux上,使用崇高的文本。Os.system(‘Clear’)应该只清除控制台窗口。用于Windows的os.system(‘cls’)。但它回来的时候和我不一样。。代码:。退货:。为什么在Cl
这个问题在这里已经有了答案: How can I force the STL memory cache to clear? (2 个答案) 关闭 6 年前。 我在 Solaris 10 上使用 g+
official docs关于 .clear() 我不是很清楚。他们说: Erases all AsyncStorage for all clients, libraries, etc. You pr
我有这段代码可以清除 C# WebBrowser 控件中的缓存。它的问题是它还会清除 cookie。在整个互联网上,我似乎是唯一一个不想这样的人。 我需要维护 cookie,但要丢弃缓存。 特别感兴趣
我记得直接在 DataTable 上调用的一些方法/属性之间存在差异。类,以及 DataTable.Rows 上同名的方法/属性属性(property)。 (可能是我读到这篇文章的 RowCount/
在 Unity 的 Camera组件中有一个属性清除标志,它允许从四个选项中进行选择:天空盒、纯色、仅深度和不清除。 正如文档所说: Don’t clear This mode does not cl
我无法找出为什么我的函数没有被调用。我将 alert("test") 放在那里只是为了测试函数是否被调用,而事实并非如此。 HTML: JS: function clear(price,quanti
我有 2 个数组列表: ArrayList> res= new ArrayList(); ArrayList data= new ArrayList(); 在我将结果集添加到子项并将子项附加到父项后,
正如主题所述..哪个版本更有效,为什么? std::vector a; .. a.clear(); 或 std::vector a; .. if(!a.empty()) a.clear(); 最佳
我包含了定义函数“clear()”的“PDCurses/curses.h”,然后当我使用“std::wstring::clear()”时,msvc-10.0 编译器报告错误。当我在包含后使用“#und
Session.Clear() 与 Session.Contents.Clear() 有什么区别? 我想清除所有 session 变量。 谢谢。 最佳答案 根据反射器,没有差异。 Session.Co
QPointer有一个方法, clear() . Clears this QPointer object. 我不确定“清晰”的确切含义。在我看来,这可能意味着 它会删除您引用的指针。 或 它取消附加您
在 string::clear 函数的描述中,它说: clear: Erases the contents of the string, which becomes an empty string (
我有两个不同的 Mathematica 笔记本,它们具有相似但功能不同的功能。当它们是唯一打开的笔记本时,两者都可以正常工作。尽管我(自由地)使用 Clear[] 来清除相关变量,但其中一个在另一个笔
有没有办法扩展 Symfony 2 cache:clear命令来清除 APC 还是执行一些其他逻辑? 最佳答案 您可以使用 ApcBundle去做这个。 关于php - 扩展 Symfony 2 缓存
我正在尝试使用 html 和 css 制作一个简单的信息网站,并使用 960 网格,因为该网站将具有分栏结构。 当我将标题 h1 float 到左侧(它有 Logo 图像,我正在使用 css 添加图像
我刚刚意识到: 在一系列 float div 导致布局破坏之后,同时 工作正常。 谁能解释一下? 这是 CSS: div.clear { clear:both; } 最佳答案 如果您将
这两个命令等效吗?如果不是,有什么区别? 最佳答案 rake 任务仅清除存储在文件系统 "#{Rails.root}/tmp/cache" 中的文件。这是该任务的代码。 namespace :cach
在STM32F407上初始化USART1时,我在启用TC中断时遇到了问题。一旦 USART RCC 启用,SR 中的 Tcflags就会被设置(“1”),而在启用 TC 中断之前清除该标志对我来说已经
我是一名优秀的程序员,十分优秀!