<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://library.morph.zone/index.php?action=history&amp;feed=atom&amp;title=Przeci%C4%85%C5%BCanie_destruktor%C3%B3w</id>
		<title>Przeciążanie destruktorów - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://library.morph.zone/index.php?action=history&amp;feed=atom&amp;title=Przeci%C4%85%C5%BCanie_destruktor%C3%B3w"/>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Przeci%C4%85%C5%BCanie_destruktor%C3%B3w&amp;action=history"/>
		<updated>2026-05-12T05:50:28Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://library.morph.zone/index.php?title=Przeci%C4%85%C5%BCanie_destruktor%C3%B3w&amp;diff=1192&amp;oldid=prev</id>
		<title>Krashan: Translation finished.</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Przeci%C4%85%C5%BCanie_destruktor%C3%B3w&amp;diff=1192&amp;oldid=prev"/>
				<updated>2011-01-26T06:48:34Z</updated>
		
		<summary type="html">&lt;p&gt;Translation finished.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 06:48, 26 January 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''Grzegorz Kraszewski''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''Grzegorz Kraszewski''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;small&amp;gt;Ten artykuł w innych językach:[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Overloading destructors&lt;/del&gt;|angielski]]&amp;lt;/small&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;small&amp;gt;Ten artykuł w innych językach: [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Overriding Destructors&lt;/ins&gt;|angielski]]&amp;lt;/small&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jedynym zadaniem destruktora jest zwolnienie zasobów zarezerwowanych przez konstruktor i inne metody &lt;/ins&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;niektóre zasoby mogą być alokowane na żądanie&lt;/ins&gt;). &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;W każdym przypadku destruktor musi zostawić obiekt w takim stanie jak zaraz po wywołaniu &lt;/ins&gt;''DoSuperMethod()/DoSuperNew()'' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;w konstruktorze&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Następnie destruktor wywołuje destruktor w klasie nadrzędnej&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Struktura parametrów destruktora jest pusta (zawiera tylko identyfikator metody)&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The only task of a destructor is freeing resources allocated by the constructor and other methods &lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;some resources may be allocated on-demand only&lt;/del&gt;). &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;In any case the destructor must leave the object in the same state as right after &lt;/del&gt;''DoSuperMethod()/DoSuperNew()'' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;in the constructor&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;After that the destructor calls a super class destructor&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The destructor receives an empty message&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; IPTR MyClassDispose(Class *cl, Object *obj, Msg msg)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; IPTR MyClassDispose(Class *cl, Object *obj, Msg msg)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot; &gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The example destructor follows the example of the constructor in the &lt;/del&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Overriding Constructors&lt;/del&gt;]] &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;article&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Three resources obtained in the constructor are freed here&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The destructor is also prepared for a partially constructed object&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;every resource is checked against ''NULL'' before freeing&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;If for some type of resource NULL is a valid handle&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;an additional flag may be added to the object instance data area&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Przykładowy destruktor powyżej jest kontynuacją przykładu konstruktora w artykule &amp;quot;&lt;/ins&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Przeciążanie konstruktorów&lt;/ins&gt;]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Zwalnia trzy zasoby przydzielane w konstruktorze&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Destruktor jest przygotowany na sytuację&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;gdy obiekt jest jedynie częściowo skonstruowany, wskaźnik na każdy zasób jest sprawdzany na okoliczność wartości zerowej&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jeżeli dla jakiegoś typu zasobów zero jest porpawnym identyfikatorem, najprościej dodać do danych obiektu flagę&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;która będzie pamiętała alokację danego zasobu&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Krashan</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Przeci%C4%85%C5%BCanie_destruktor%C3%B3w&amp;diff=1191&amp;oldid=prev</id>
		<title>Krashan: Translation started.</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Przeci%C4%85%C5%BCanie_destruktor%C3%B3w&amp;diff=1191&amp;oldid=prev"/>
				<updated>2011-01-26T06:40:23Z</updated>
		
		<summary type="html">&lt;p&gt;Translation started.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;''Grzegorz Kraszewski''&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;small&amp;gt;Ten artykuł w innych językach:[[Overloading destructors|angielski]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The only task of a destructor is freeing resources allocated by the constructor and other methods (some resources may be allocated on-demand only). In any case the destructor must leave the object in the same state as right after ''DoSuperMethod()/DoSuperNew()'' in the constructor. After that the destructor calls a super class destructor. The destructor receives an empty message.&lt;br /&gt;
&lt;br /&gt;
 IPTR MyClassDispose(Class *cl, Object *obj, Msg msg)&lt;br /&gt;
 {&lt;br /&gt;
   struct MyClassData *d = (struct MyClassData*)INST_DATA(cl, obj);&lt;br /&gt;
 &lt;br /&gt;
   if (d-&amp;gt;ResourceA) FreeResourceA();&lt;br /&gt;
   if (d-&amp;gt;ResourceB) FreeResourceB();&lt;br /&gt;
   if (d-&amp;gt;ResourceC) FreeResourceC();&lt;br /&gt;
   return DoSuperMethodA(cl, obj, msg);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The example destructor follows the example of the constructor in the [[Overriding Constructors]] article. Three resources obtained in the constructor are freed here. The destructor is also prepared for a partially constructed object, every resource is checked against ''NULL'' before freeing. If for some type of resource NULL is a valid handle, an additional flag may be added to the object instance data area.&lt;/div&gt;</summary>
		<author><name>Krashan</name></author>	</entry>

	</feed>