<?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[list iterator not derefencable]]></title><description><![CDATA[<p>kriege die oben genannte abort assertion error und wenn ich auf ignorieren drücke, dann steht standard c++ libraries out of range.</p>
<p>beim debuggen passiert der fehler hier</p>
<pre><code>void House::AddFloor(const Floor &amp;  flobj)
{
	mFLoors.push_back(flobj);
	mNrFloors++;
}
</code></pre>
<p>nämlich bei push_back</p>
<p>komisch ist (für mich), dass wenn ich im main</p>
<pre><code>Floor *ws=new Floor();
		ws-&gt;AddFlat(*bla);
		haus-&gt;Print(cout);
</code></pre>
<p>einen flat ins floor hinzufüge und dann im haus printe (die daten werden ins floor richtig geschrieben)</p>
<p>die printausgabe im house sieht folgendermaßen aus(ich sehe nichts wo ich den end iterator dereferenziere?)</p>
<pre><code>void House::Print(std::ostream&amp;out) const
{
...anderes zeugs

	copy(mFLoors.begin(),mFLoors.end(),ostream_iterator&lt;Floor&gt;(out, &quot; &quot;));
}
</code></pre>
<p>die printfunktion für flat von floor sieht so aus:</p>
<pre><code>void Floor::Print(ostream &amp;out) const
{
	TFlatListItor it;

	for(it=mFlatList.begin();it!=mFlatList.end();++it)
	{
		it-&gt;Print(out);
	}
}
</code></pre>
<p>ich hoffe, es findet sich um die zeit jemand der mir helfen kann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/321077/list-iterator-not-derefencable</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 01:13:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/321077.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Oct 2013 22:02:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to list iterator not derefencable on Tue, 22 Oct 2013 22:02:40 GMT]]></title><description><![CDATA[<p>kriege die oben genannte abort assertion error und wenn ich auf ignorieren drücke, dann steht standard c++ libraries out of range.</p>
<p>beim debuggen passiert der fehler hier</p>
<pre><code>void House::AddFloor(const Floor &amp;  flobj)
{
	mFLoors.push_back(flobj);
	mNrFloors++;
}
</code></pre>
<p>nämlich bei push_back</p>
<p>komisch ist (für mich), dass wenn ich im main</p>
<pre><code>Floor *ws=new Floor();
		ws-&gt;AddFlat(*bla);
		haus-&gt;Print(cout);
</code></pre>
<p>einen flat ins floor hinzufüge und dann im haus printe (die daten werden ins floor richtig geschrieben)</p>
<p>die printausgabe im house sieht folgendermaßen aus(ich sehe nichts wo ich den end iterator dereferenziere?)</p>
<pre><code>void House::Print(std::ostream&amp;out) const
{
...anderes zeugs

	copy(mFLoors.begin(),mFLoors.end(),ostream_iterator&lt;Floor&gt;(out, &quot; &quot;));
}
</code></pre>
<p>die printfunktion für flat von floor sieht so aus:</p>
<pre><code>void Floor::Print(ostream &amp;out) const
{
	TFlatListItor it;

	for(it=mFlatList.begin();it!=mFlatList.end();++it)
	{
		it-&gt;Print(out);
	}
}
</code></pre>
<p>ich hoffe, es findet sich um die zeit jemand der mir helfen kann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362262</guid><dc:creator><![CDATA[ACnut]]></dc:creator><pubDate>Tue, 22 Oct 2013 22:02:40 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 07:26:10 GMT]]></title><description><![CDATA[<p>Bitte vollständiges Minimalbeispiel, dein Code reicht nicht aus, um deine Frage zu beantworten:<br />
<a href="http://www.c-plusplus.net/forum/304133" rel="nofollow">http://www.c-plusplus.net/forum/304133</a></p>
<p>Keine Ahnung was ein <code>House</code> ist, ein <code>Floor</code> , ein <code>Flat</code> , ein <code>TFlatListItor</code> . Wie könnte ich Dir da helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362298</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Wed, 23 Oct 2013 07:26:10 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 07:45:58 GMT]]></title><description><![CDATA[<p>folgende klassenstruktur:<br />
owner ist ein teil von flat, flat ist ein teil von floor, floor ist ein teil von house,...</p>
<pre><code>class House: public Object
{
public:
	House();
	virtual ~House();
	virtual void Print(std::ostream&amp;out) const;
	TAddress GetAddress() const;
	void SetAddress(TAddress const &amp; address);
	size_t GetNrFloors() const;
	void AddFloor(const Floor &amp;  flobj);
	House&amp; operator =(House const &amp; cfloor);
	House (const House &amp; cFloor);

private:
	TAddress mAddress;
	TFloorList mFLoors;
	size_t mNrFloors;
};

typedef std::list&lt;Floor&gt; TFloorList;
typedef TFloorList::const_iterator TFloorListItor;
</code></pre>
<pre><code>House::House(const House &amp; cFloor)
{
	mNrFloors=cFloor.mNrFloors;
	mAddress=cFloor.mAddress;
	copy ( cFloor.mFLoors.begin(),cFloor.mFLoors.end(), mFLoors.begin() );
}
</code></pre>
<pre><code>class Flat;

//typedefs for list of flats and iterator for flat list
typedef std::list&lt;Flat&gt; TFlatList;
typedef TFlatList::const_iterator TFlatListItor;

class Floor: public Object
{
public:
	size_t GetNrFlat() const;
	virtual void Print(std::ostream &amp; out) const;
	void SetNrFlat(size_t const &amp; nrFlat);
	Floor&amp; operator =(Floor const &amp; c);
	Floor (const Floor &amp; cFloor);
	Floor();
	virtual ~Floor();
	void AddFlat(Flat const &amp;flat);

private:
	size_t mNrFlat;
	TFlatList mFlatList;

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2362300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362300</guid><dc:creator><![CDATA[ACnut]]></dc:creator><pubDate>Wed, 23 Oct 2013 07:45:58 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 07:55:19 GMT]]></title><description><![CDATA[<p>Vollständiges Minimalbeispiel heißt, man kann den Code einfach per Copy&amp;Paste in seine IDE hauen, durchcompilieren und selber testen. Dazu musst Du die Dateien zu einer zusammenführen und Sachen wegmachen, die irrelevant sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362301</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 23 Oct 2013 07:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 10:37:16 GMT]]></title><description><![CDATA[<p>also gut versuch zwei:</p>
<p>class house:</p>
<pre><code>typedef std::list&lt;Floor&gt; TFloorList;
typedef TFloorList::const_iterator TFloorListItor;

class House
{
public:
	void AddFloor(const Floor &amp;  flobj);
	House&amp; operator =(House const &amp; cfloor);
	House (const House &amp; cFloor);

private:
	TFloorList mFLoors;
};

House&amp; House::operator =(House const &amp; cfloor)
{
	//check for self-assignment
	if(this!=&amp;cfloor)
	{
		copy (cfloor.mFLoors.begin(),cfloor.mFLoors.end(), mFLoors.begin() );
	}
	return *this;
}

House::House(const House &amp; cFloor)
{
	copy ( cFloor.mFLoors.begin(),cFloor.mFLoors.end(), mFLoors.begin() );
}

void House::AddFloor(const Floor &amp;  flobj)
{
	mFLoors.push_back(flobj);
}
</code></pre>
<pre><code>typedef std::list&lt;Flat&gt; TFlatList;
typedef TFlatList::const_iterator TFlatListItor;

class Floor
{
public:
	size_t GetNrFlat() const;
	Floor&amp; operator =(Floor const &amp; c);
	Floor (const Floor &amp; cFloor);
	Floor();
	virtual ~Floor();
	void AddFlat(Flat const &amp;flat);

private:
	size_t mNrFlat;
	TFlatList mFlatList;

};
</code></pre>
<pre><code>Floor::Floor(const Floor &amp; cFloor)
{
	mNrFlat=cFloor.mNrFlat;
	copy (cFloor.mFlatList.begin(),cFloor.mFlatList.end(),mFlatList.begin());

Floor&amp; Floor::operator =(const Floor &amp; c )
{
	if(this!=&amp;c)
	{
		mNrFlat=c.mNrFlat;
		copy ( c.mFlatList.begin(),c.mFlatList.end(),mFlatList.begin());
	}
	return *this;
}
void Floor::AddFlat(Flat const &amp; flat)
{
	mFlatList.push_back(flat);
}
}
</code></pre>
<p>klasse flat:</p>
<pre><code>// typedefinition for owner
typedef Owner TOwner;

class Flat //
{
public:
	// Constructor with default values :
	Flat( size_t const&amp; size = 0, TOwner const&amp; name = Owner());

	// Copy-constructor
	Flat(Flat const &amp; fl_cc);
	// Set owner
	void SetOwner(TOwner const&amp; name);

	// Assignment operator overloading
	Flat &amp; operator=(Flat const &amp; fl);

// Members
private:
	// Size of flat
	size_t mSize;
	// Flat owner (if any)
	TOwner mOwner;
};

// Constructor
Flat::Flat(size_t const&amp; size , TOwner const&amp; name  )
	: mSize(size) ,  mOwner(name) {}

// Copy-constructor
Flat::Flat(Flat const &amp; fl_cc)
{
	mSize = fl_cc.mSize;
	mOwner = fl_cc.mOwner;
}

// Assignment operator overloading
Flat &amp; Flat::operator=(Flat const &amp; fl)
{
	(*this).mOwner = fl.mOwner;
	(*this).mSize = fl.mSize;	
	return (*this);
}
</code></pre>
<p>class owner:</p>
<pre><code>class Owner
{

public:
	// Constructor : if certain data is introduced, it will be automatically introduced by default
	Owner(std::string const &amp; fn=&quot;FIRST_NAME_Pending&quot;,std::string const &amp; ln=&quot;LAST_NAME_Pending&quot;,size_t const &amp; yob=0);

// Members:
private:
	// Last name of owner
	std::string mLastName;
	// First name of owner
	std::string mFirstName;
	// Year of birth of owner
	std::size_t mYearOfBirth;

};

// Constructor : if certain data is introduced, it will be automatically introduced by default
Owner::Owner(string const &amp; fn,string const &amp; ln,size_t const &amp; yob) : mFirstName(fn), mLastName(ln), mYearOfBirth(yob)
{}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2362344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362344</guid><dc:creator><![CDATA[ACnut]]></dc:creator><pubDate>Wed, 23 Oct 2013 10:37:16 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 11:21:26 GMT]]></title><description><![CDATA[<p>Das ist mir nicht minimal genug. Habe jetzt nur den ersten Fetzen überflogen. Das hat mir schon gereicht! So kopiert man keine Listen! Wenn du std::copy so verwenden willst bräuchtest du einen <code>back_inserter</code> als Output-Iterator. Aber das ist eh Quatsch in diesem Fall. House hätte so aussehen sollen:</p>
<pre><code>class House
{
public:
	void AddFloor(const Floor&amp; flobj);
private:
	std::list&lt;Floor&gt; mFLoors;
};

void House::AddFloor(const Floor&amp; flobj)
{
	mFLoors.push_back(flobj);
}
</code></pre>
<p>und gut ist! Die vom Compiler automatisch generierten Kopieroperationen für House tun schon genau das, was du willst.</p>
<p>Ob std::list wirklich das ist, was du brauchst, müsstest du auch nochmal überlegen. Dir ist klar, dass die Liste die Objekte bei push_back kopiert, ja? Das übergebene flobj und das, was dann in der Liste landet sind nicht dieselben Objekte (im Sinne der Objektindentität). Ich sag's nur, weil du hier und da auch noch mit Zeigern rumhantierst.</p>
<p>Ein Minimalbeispiel besteht nicht aus 5 einzelnen Dateien und ist auch nicht so lang. Das will doch keiner lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362349</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 23 Oct 2013 11:21:26 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 12:32:27 GMT]]></title><description><![CDATA[<p>ACnut schrieb:</p>
<blockquote>
<p>kriege die oben genannte abort assertion error und wenn ich auf ignorieren drücke, dann steht standard c++ libraries out of range.</p>
</blockquote>
<p>Dann hast du Glück. Sieht so aus, als ob Du die Standardbibliothek in einem Modus betreibst, wo zusätzliche Überprüfungen gemacht werden, die nicht vom C++ Standard her vorgeschrieben sind. MSVC und GCC bieten das jedenfalls an und ich kann es nur jedem empfehlen, einen solchen Debug-Modus während der Entwicklung zu verwenden.</p>
<p>Das dazu passende Minimalbeispiel sieht bestimmt so aus:</p>
<pre><code class="language-cpp">#include &lt;list&gt;
#include &lt;algorithm&gt;
int main()
{
   std::list&lt;int&gt; a;
   std::list&lt;int&gt; b;
   a.push_back(42);
   std::copy(a.begin(),a.end(),b.begin()); // &lt;-- Hier ist Dein Bug
}
</code></pre>
<p>Und hier ist die Lösung:</p>
<pre><code class="language-cpp">#include &lt;list&gt;
int main()
{
   std::list&lt;int&gt; a;
   std::list&lt;int&gt; b;
   a.push_back(42);
   b = a;
}
</code></pre>
<p>bzw.</p>
<pre><code class="language-cpp">#include &lt;list&gt;
int main()
{
   std::list&lt;int&gt; a;
   a.push_back(42);
   std::list&lt;int&gt; b = a;
}
</code></pre>
<p>Und wenn du es unbedingt mit <code>copy</code> machen willst, dann so:</p>
<pre><code class="language-cpp">#include &lt;list&gt;
#include &lt;algorithm&gt;
#include &lt;iterator&gt;
int main()
{
   std::list&lt;int&gt; a;
   std::list&lt;int&gt; b;
   a.push_back(42);
   std::copy(a.begin(),a.end(),back_inserter(b));
}
</code></pre>
<p>wobei <code>back_inserter</code> Dir einen Output-Iterator gibt, der die Elemente bei der Liste hinten anfügt. Denn <code>b</code> ist ja leer. Dementsprechend darf der begin-Iterator weder dereferenziert noch inkrementiert werden. Aber genau das passiert in <code>std::copy</code> .</p>
<p>Edit: Aber wie ich vorher schon sagte, ist das in deinem Fall mit <code>copy</code> überflüssig, weil die vom Compiler generierten Kopieroperationen schon elementweise kopieren und die Kopieroperationen des std::list&lt;&gt;-Elements kopieren auch all die Listenelemente.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362359</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 23 Oct 2013 12:32:27 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 12:12:34 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Und hier ist die Lösung:</p>
</blockquote>
<p>Der Punk ist, dass es eine Lösung für ein nicht existentes Problem ist. Hier braucht man nämlich gar keinen selbst definierten Copy Construktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362361</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 23 Oct 2013 12:12:34 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 12:13:55 GMT]]></title><description><![CDATA[<p>Ja, das hatte ich ja auch schon erwähnt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362362</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 23 Oct 2013 12:13:55 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 12:21:28 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Ja, das hatte ich ja auch schon erwähnt.</p>
</blockquote>
<p>Hatte ich übersehen sorry.</p>
<p>Prinzipiell ist es ja sehr schön, das ACnut std::Copy() kennt und nicht mit Schleifen oder ähnlichem herumhantiert. Allerdings ist meiner Meinung nach std::Copy() der am meisten überschätzte C++ Algorithmus. Gefühlt 80% aller Verwendungen von std::Copy() lassen sich durch wesentlich bessere Dinge ersetzen z.B. Range-Methoden oder eben gleich Zuweisungoperator oder Copykonstruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362366</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 23 Oct 2013 12:21:28 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 12:40:49 GMT]]></title><description><![CDATA[<p>TNA schrieb:</p>
<blockquote>
<p>z.B. Range-Methoden</p>
</blockquote>
<p>Stimmt! Das gibt's ja auch noch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Der Vollständigkeit wegen:</p>
<pre><code class="language-cpp">#include &lt;list&gt;
int main()
{
   std::list&lt;int&gt; a;
   a.push_back(42);
   std::list&lt;int&gt; b (a.begin(),a.end());
}
</code></pre>
<p>(oder auch über list&lt;&gt;::assign)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362372</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 23 Oct 2013 12:40:49 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 13:53:49 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Und hier ist die Lösung:</p>
<pre><code class="language-cpp">#include &lt;list&gt;
int main()
{
   std::list&lt;int&gt; a;
   std::list&lt;int&gt; b;
   a.push_back(42);
   b = a;
}
</code></pre>
</blockquote>
<p>Wenn schon so, wie wäre es mit:</p>
<pre><code class="language-cpp">#include &lt;list&gt;
int main()
{
   std::list&lt;int&gt; a;
   a.push_back(42);
   std::list&lt;int&gt; b(a);
}
</code></pre>
<p>EDIT: Wobei das entspricht praktisch dem</p>
<pre><code>std::list&lt;int&gt; b = a;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2362388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362388</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 23 Oct 2013 13:53:49 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 18:04:44 GMT]]></title><description><![CDATA[<p>ja genau das war das problem.<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/24868">@krümelkacker</a> würde man den nicht die übersichtlichkeit noch mehr verlieren, wenn man alles auf eine klasse &quot;komprimiert&quot;?</p>
<p>das problem ist, dass ich nach drei monaten wieder zum ersten mal programmiere und daher vieles aus der erinnerung verloren habe. somit sollte ich eigentlich die back_inserter methode kennen, aber es war leider nicht mehr in erinnerung.</p>
<p>ich persönlich hätte den =, und den copy-ctor auch nicht überladen (es wird ja nicht direkt mit zeigern gearbeitet :)), aber bei einem anderen problem (thema wurde auch hier erstellt), wurde mir gesagt, dass ich das implementieren soll und dann hat es auch funktioniert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>das mit den range methoden hatten wir nicht gelernt, aber danke das ich wieder was neues gelernt habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>mfg<br />
ACnut</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362485</guid><dc:creator><![CDATA[ACnut]]></dc:creator><pubDate>Wed, 23 Oct 2013 18:04:44 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Wed, 23 Oct 2013 20:38:00 GMT]]></title><description><![CDATA[<p>ACnut schrieb:</p>
<blockquote>
<pre><code>class Flat //
{
...
	// Size of flat
	size_t mSize;
	// Flat owner (if any)
	TOwner mOwner;
};
</code></pre>
</blockquote>
<p>Ein Tip zu deinen Kommentaren (ist zwar off-topic, aber fällt auf): Wenn die Klasse <code>Flat</code> heißt und die Variable <code>mSize</code> , braucht es nicht noch einen Kommentar &quot;Size of flat&quot;. Genau dafür sind präzise Klassen/Funktions/Variablennamen da! Alles andere ist Müll, doppelte Information ist per Definition böse und aus überflüssigen Kommentaren werden in null komma nix falsche, denn du musst nun immer beides pflegen. Also weg damit.<br />
Wenn schon Kommentare, dann sollen sie zusätzliche Informationen liefern, beispielsweise, ob die Flatsize nun Quadratmeter oder Quadratzoll oder Hektar darstellt. Wobei man auch dieses in einem schönen Namen darstellen kann: <code>sizeInSquareMeters</code> oder halt <code>size_m2</code> .</p>
<p>Edit: Bei Größe einer Wohnung mag die Einheit übertrieben erscheinen. Wenn in einem Projekt aber z.B. Minuten, Sekunden und Millisekunden für unterschiedliche Dinge im Spiel sind, sind solche Ergänzungen ein wahrer Segen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362519</guid><dc:creator><![CDATA[minastaros]]></dc:creator><pubDate>Wed, 23 Oct 2013 20:38:00 GMT</pubDate></item><item><title><![CDATA[Reply to list iterator not derefencable on Thu, 24 Oct 2013 09:49:28 GMT]]></title><description><![CDATA[<p>ACnut schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/24868">@krümelkacker</a> würde man den nicht die übersichtlichkeit noch mehr verlieren, wenn man alles auf eine klasse &quot;komprimiert&quot;?</p>
</blockquote>
<p>Ich weiß jetzt nicht genau, was du damit meinst. 5 Dateien mit 3 Klassen sind höchst unwahrscheinlich ein <em>Minimalbeispiel</em>. Den Fehler so zu isolieren, dass da hinterher nur noch 10 Zeilen stehen, die man sich als Hilfswilliger angucken muss, ist eigentlich <em>Dein Job</em> als Fragesteller. Oft findet man den Fehler so schon von alleine. Ich habe nirgens gesagt, dass das Design in deinem Projekt von 3 Klassen auf eine reduziert werden soll. Minimalbeispiele erhöhen aber Deine Chance, eine hilfreiche Antwort zu bekommen.</p>
<p>ACnut schrieb:</p>
<blockquote>
<p>ich persönlich hätte den =, und den copy-ctor auch nicht überladen (es wird ja nicht direkt mit zeigern gearbeitet :)), aber bei einem anderen problem (thema wurde auch hier erstellt), wurde mir gesagt, dass ich das implementieren soll und dann hat es auch funktioniert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Ist Dir denn jetzt klar, wann du diese Operationen selbst definieren musst und wann nicht?</p>
<p>ACnut schrieb:</p>
<blockquote>
<p>[...] danke [...]</p>
</blockquote>
<p>Gerne. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362586</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 24 Oct 2013 09:49:28 GMT</pubDate></item></channel></rss>