<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ressourcenzugriff problemchen]]></title><description><![CDATA[<p>hallo!</p>
<p>ich habe eine klasse (A) die als wrapper dient für einen pointer der auf den anfang einer dynamisch alloziierten liste zeigt - im destruktor wird der speicher auch wieder freigegeben.</p>
<p>eine weitere klasse (B) von mir benötigt zugriff auf den in der klasse A enthaltenen pointer. es werden von der klasse B relativ viele instanzen benötigt weshalb ich nicht für jede instanz eine neue liste alloziieren möchte. gleichzeitig darf der speicher der liste nicht freigegeben werden wenn noch eine instanz der klasse B existiert.</p>
<p>wie löse ich das am besten? in jede instanz der klasse b einen pointer packen der auf die klasse A zeigt und das ganze im konstruktor intialisieren? oder geht das auch eleganter?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322251/ressourcenzugriff-problemchen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 10:32:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322251.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Dec 2013 19:13:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ressourcenzugriff problemchen on Thu, 12 Dec 2013 19:13:20 GMT]]></title><description><![CDATA[<p>hallo!</p>
<p>ich habe eine klasse (A) die als wrapper dient für einen pointer der auf den anfang einer dynamisch alloziierten liste zeigt - im destruktor wird der speicher auch wieder freigegeben.</p>
<p>eine weitere klasse (B) von mir benötigt zugriff auf den in der klasse A enthaltenen pointer. es werden von der klasse B relativ viele instanzen benötigt weshalb ich nicht für jede instanz eine neue liste alloziieren möchte. gleichzeitig darf der speicher der liste nicht freigegeben werden wenn noch eine instanz der klasse B existiert.</p>
<p>wie löse ich das am besten? in jede instanz der klasse b einen pointer packen der auf die klasse A zeigt und das ganze im konstruktor intialisieren? oder geht das auch eleganter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371430</guid><dc:creator><![CDATA[cghkmh]]></dc:creator><pubDate>Thu, 12 Dec 2013 19:13:20 GMT</pubDate></item><item><title><![CDATA[Reply to ressourcenzugriff problemchen on Thu, 12 Dec 2013 19:37:10 GMT]]></title><description><![CDATA[<p>cghkmh schrieb:</p>
<blockquote>
<p>ich habe eine klasse (A) die als wrapper dient für einen pointer der auf den anfang einer dynamisch alloziierten liste zeigt - im destruktor wird der speicher auch wieder freigegeben.</p>
</blockquote>
<p>Na hoffentlich hast du auch den Kopierkonstruktor und den Zuweisungsoperator definiert. <a href="https://en.wikipedia.org/wiki/Rule_of_three_%28C%2B%2B_programming%29" rel="nofollow">https://en.wikipedia.org/wiki/Rule_of_three_(C%2B%2B_programming)</a></p>
<p>Oder noch besser, warum verwendest du nicht std::unique_ptr?</p>
<blockquote>
<p>wie löse ich das am besten?</p>
</blockquote>
<p>Zwei Möglichkeiten, der Eleganz geordnet:<br />
1. Design überdenken. Kann man nicht voraussagen, wann das letzte B gelöscht wird? Ich hatte noch nie den Fall, wo das nicht ging.<br />
2. Die Liste als std::shared_ptr halten (bzw. boost::shared_ptr) und sie mit den B's sharen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371441</guid><dc:creator><![CDATA[gdfdawerg]]></dc:creator><pubDate>Thu, 12 Dec 2013 19:37:10 GMT</pubDate></item><item><title><![CDATA[Reply to ressourcenzugriff problemchen on Thu, 12 Dec 2013 19:49:58 GMT]]></title><description><![CDATA[<blockquote>
<p>Na hoffentlich hast du auch den Kopierkonstruktor und den Zuweisungsoperator definiert.</p>
</blockquote>
<p>ja, natürlich habe ich das.</p>
<p>die liste wird durch eine winapi-funktion generiert und muss durch eine weitere funktion wieder freigegeben werden, also nichts mit new/delete.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371456</guid><dc:creator><![CDATA[cghkmh]]></dc:creator><pubDate>Thu, 12 Dec 2013 19:49:58 GMT</pubDate></item></channel></rss>