<?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[Objekt und Klasse und Konstruktoren]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich versuche mir ein Grundlagen Lehrbuch zu C++ zu erarbeiten. Dort heisst es (Zitat):</p>
<p>&quot;In C++ you have the facility to encapsulate data and the operations that manipulate that data, in an appropriate object. This enables the use of these collections of data and function, called objects.&quot;</p>
<p>Später heisst es dann in dem Buch:</p>
<p>&quot;The data items and the functions that manipulate them are combined into a structure called a class.&quot;</p>
<p>Ist jetzt ein Objekt und eine Klasse das gleiche oder was ist da der genaue Unterschied?</p>
<p>Dann noch eine Frage aus einem anderen Kapitel. Dort heisst es:</p>
<p>&quot;More than one constructor, but only one destructor, can be declared for a class&quot;</p>
<p>Also ein Konstruktor erzeugt und initialisiert ein Objekt und derer kann es mehrerer pro Objekt geben, aber ein Objekt kann nur einen einzige Destruktor besitzen. Was hat es denn damit auf sich? Wozu will man mehrere Konstruktoren für ein Objekt besitzen und wieso dann nur einen Destruktor?</p>
<p>Vermutlich für die Cracks ein paar dumme Fragen aber ich bin noch sehr neu auf dem Gebiet und kam bis dato sehr gut ohne Technik aus. Daher entschuldigt falls die Frage zu &quot;dumm&quot; ist.</p>
<p>Merci und Gruß<br />
cpp_Jungspund</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/333866/objekt-und-klasse-und-konstruktoren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 05:28:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/333866.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Aug 2015 21:18:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Wed, 05 Aug 2015 21:18:41 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich versuche mir ein Grundlagen Lehrbuch zu C++ zu erarbeiten. Dort heisst es (Zitat):</p>
<p>&quot;In C++ you have the facility to encapsulate data and the operations that manipulate that data, in an appropriate object. This enables the use of these collections of data and function, called objects.&quot;</p>
<p>Später heisst es dann in dem Buch:</p>
<p>&quot;The data items and the functions that manipulate them are combined into a structure called a class.&quot;</p>
<p>Ist jetzt ein Objekt und eine Klasse das gleiche oder was ist da der genaue Unterschied?</p>
<p>Dann noch eine Frage aus einem anderen Kapitel. Dort heisst es:</p>
<p>&quot;More than one constructor, but only one destructor, can be declared for a class&quot;</p>
<p>Also ein Konstruktor erzeugt und initialisiert ein Objekt und derer kann es mehrerer pro Objekt geben, aber ein Objekt kann nur einen einzige Destruktor besitzen. Was hat es denn damit auf sich? Wozu will man mehrere Konstruktoren für ein Objekt besitzen und wieso dann nur einen Destruktor?</p>
<p>Vermutlich für die Cracks ein paar dumme Fragen aber ich bin noch sehr neu auf dem Gebiet und kam bis dato sehr gut ohne Technik aus. Daher entschuldigt falls die Frage zu &quot;dumm&quot; ist.</p>
<p>Merci und Gruß<br />
cpp_Jungspund</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462723</guid><dc:creator><![CDATA[cpp_Jungspund]]></dc:creator><pubDate>Wed, 05 Aug 2015 21:18:41 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Wed, 05 Aug 2015 21:47:42 GMT]]></title><description><![CDATA[<p>cpp_Jungspund schrieb:</p>
<blockquote>
<p>Ist jetzt ein Objekt und eine Klasse das gleiche oder was ist da der genaue Unterschied?</p>
</blockquote>
<p>Nein, eine Klasse ist wie ein Bauplan für ein Objekt. Ein Objekt ist eine Instanz der Klasse.</p>
<pre><code>class SomeClass {
  //Das ist eine Klasse
};
int main(){
  SomeClass varname;
  SomeClass* varname2 = new SomeClass();
  //Das sind beides Objekte, Instanzen der Klasse &quot;SomeClass&quot;
}
</code></pre>
<p>cpp_Jungspund schrieb:</p>
<blockquote>
<p>Wozu will man mehrere Konstruktoren für ein Objekt besitzen und wieso dann nur einen Destruktor?</p>
</blockquote>
<p>Nunja, ein Objekt kann auf die eine oder auf die andere Weise instanziert/konstruiert werden, z.B.:</p>
<pre><code>class SomeClass {
public:
  SomeClass(const char* name) : name(name) {};
  SomeClass(const std::string&amp; name) : name(name) {};
private:
  std::string name;
}
</code></pre>
<p>So kannst du ein Objekt mit einem (C++)-String oder einem C-String konstruieren, allerdings ist zur laufzeit bzw. nachdem das objekt konstruiert wird nichtmehr bekannt, welchen Konstruktor du genutzt hattest, um das Objekt zu erstellen, d.h. es gäbe keine Möglichkeit, gäbe es denn mehrere destruktoren, herauszufinden welcher der richtige wäre. Also bleibt nur der eine Destruktor, in dem du dich darum kümmern musst, alle resourcen freizugeben, egal durch welchen Konstrukor das Objekt konstruiert wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462727</guid><dc:creator><![CDATA[tkausl]]></dc:creator><pubDate>Wed, 05 Aug 2015 21:47:42 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Wed, 05 Aug 2015 21:49:47 GMT]]></title><description><![CDATA[<p>Eine Klasse ist der Bauplan für Objekte. Beim Bau eines einzelnen Objekts kann einer der Konstruktoren verwendet werden. Beim Abreißen braucht man nur die Abrissbirne (aka Destruktor).</p>
<p>Wie alle Vergleiche hinkt auch dieser auf mindestens einem Bein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462728</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 05 Aug 2015 21:49:47 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Wed, 05 Aug 2015 21:51:45 GMT]]></title><description><![CDATA[<p>Objekt verhält sich zu Klasse wie Plätzchen zu Plätzchenform.</p>
<blockquote>
<p>Wozu will man mehrere Konstruktoren für ein Objekt besitzen</p>
</blockquote>
<p>Warum nicht? willst du deine Plätzchen nur mit einem Teig backen können?</p>
<blockquote>
<p>und wieso dann nur einen Destruktor?</p>
</blockquote>
<p>Ok, hier bricht die Plätzchenanalogie etwas zusammen <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="🙂"
    /><br />
Der Destruktor eines Objekts zerstört dieses unabhängig von allen anderen Dingen. Was sollte man so einem Destruktor auch sagen? Das einzige, was er wissen muss, ist, welches Objekt er zerstören soll. Und das heißt, dass es genau eine Destruktorvariante gibt, nämlich die, die als (verstecktes) Argument das zu zerstörende Objekt erhält und sonst nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462730</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 05 Aug 2015 21:51:45 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Wed, 05 Aug 2015 21:53:13 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ok, hier bricht die Plätzchenanalogie etwas zusammen <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>Quatsch. Du kannst mit deinem eigenen (einzigen) Mund alle Plätzchen essen (zerstören), ganz egal aus welchem Teig sie gebacken sind <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462731</guid><dc:creator><![CDATA[tkausl]]></dc:creator><pubDate>Wed, 05 Aug 2015 21:53:13 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Wed, 05 Aug 2015 22:26:38 GMT]]></title><description><![CDATA[<p>Aber viele verschiedene Münder können Plätzchen essen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462734</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 05 Aug 2015 22:26:38 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Wed, 05 Aug 2015 22:26:57 GMT]]></title><description><![CDATA[<p>Eine Klasse ist eine Beschreibung für eine Instanz (Objekt). Nach dieser Beschreibung wird dann eine Instanz gebaut. So ein Beschreibung besteht aus Datenelementen (du beschreibst, was den Zustand einer Instanz repräsentieren soll) und Elementfunktionen (du beschreibst, was eine Instanz können soll).</p>
<p>Eine Instanz ist etwas Lebendiges, sagen wir ein Akteur, mit dem du Dinge machen kannst. Welche Dinge dein Akteur machen kann, sagen die Elementfunktionen. Das Ergebnis einer Aktion sagen dann die Datenelemente. Die Datenelemente repräsentieren den aktuellen Zustand deiner Instanz.</p>
<p>Beispiel: Du hast eine Klasse Auto. Du erstellst ein Auto names KITT. Dann sagst du KITT.anhalten(). Das Ergebnis ist dann z.B. Datenelement kmh=0.</p>
<p>Ja ein Konstruktor initialisiert (baut) eine Instanz. Du kannst beliebig viele unterschiedliche Konstruktoren haben. Du kannst mehrere Konstruktoren haben, weil du willst, dann Instanzen auf unterschiedliche Art gebaut werden. Du willst ein Auto mit 50 PS bauen und du willst ein Auto mit 260 PS bauen. Wieso sollte es mehrere Destruktoren geben?</p>
<p>Hoffe, die Veranschaulichungen helfen dir weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462735</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 05 Aug 2015 22:26:57 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Thu, 06 Aug 2015 08:08:31 GMT]]></title><description><![CDATA[<p>Die Antworten haben mir sehr geholfen. Danke sehr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462761</guid><dc:creator><![CDATA[cpp_Jungspund]]></dc:creator><pubDate>Thu, 06 Aug 2015 08:08:31 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Thu, 06 Aug 2015 09:35:14 GMT]]></title><description><![CDATA[<p>Das es nur einen Destructor gibt, ist allein dem &quot;maximale Effizienz&quot; Ansatz von C++ geschuldet. Es waere kein Problem dem Konstruktor der Klasse einfach schon z.b. einen Funktionspointer mitzugeben, mit welchem man unter mehreren Destruktoren wechseln kann. Allein dieser muss pro Instanz gespeichert werden, und daher passiert dies eben nicht. Troztdem hat C++ schon eine Mechanik eingebaut, man kann den Destruktor virtual machen und dann in einer abgeleiteten Klasse überschreiben. Beim Konstruieren kann man sich dann den Destruktor waehlen. Das Objekt legt in der vtable die Daten ab um spaeter den passenden Destruktor zu finden, gab es vorher keine virtuelle Methode bezahlt man hier also diesen Preis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462773</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Thu, 06 Aug 2015 09:35:14 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Thu, 06 Aug 2015 22:38:29 GMT]]></title><description><![CDATA[<p>TGGC schrieb:</p>
<blockquote>
<p>Das es nur einen Destructor gibt, ist allein dem &quot;maximale Effizienz&quot; Ansatz von C++ geschuldet.</p>
</blockquote>
<p>Ich würde nicht sagen &quot;allein&quot;.<br />
Selbst wenn man die runtime Kosten (Zeit + Speicher) ignoriert stellt sich immer noch die Frage &quot;wozu?&quot;.<br />
Und da fällt mir einfach kein guter Grund ein.<br />
Also ich wüsste kein Beispiel wo ich, je nachdem wie das Objekt konstruiert wurde, einen anderen Destruktor verwenden wollen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462884</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 06 Aug 2015 22:38:29 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Fri, 07 Aug 2015 04:22:03 GMT]]></title><description><![CDATA[<p>TGGC schrieb:</p>
<blockquote>
<p>Das es nur einen Destructor gibt, ist allein dem &quot;maximale Effizienz&quot; Ansatz von C++ geschuldet.</p>
</blockquote>
<p>Unfug.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462922</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 07 Aug 2015 04:22:03 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Fri, 07 Aug 2015 06:27:47 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>TGGC schrieb:</p>
<blockquote>
<p>Das es nur einen Destructor gibt, ist allein dem &quot;maximale Effizienz&quot; Ansatz von C++ geschuldet.</p>
</blockquote>
<p>Ich würde nicht sagen &quot;allein&quot;.<br />
Selbst wenn man die runtime Kosten (Zeit + Speicher) ignoriert stellt sich immer noch die Frage &quot;wozu?&quot;.<br />
Und da fällt mir einfach kein guter Grund ein.<br />
Also ich wüsste kein Beispiel wo ich, je nachdem wie das Objekt konstruiert wurde, einen anderen Destruktor verwenden wollen würde.</p>
</blockquote>
<p>Du hast noch nie in einem Destructor ein if oder switch Statement verwendet? Immer wenn in einem Destructor Code ausgefuehrt wird, der dynamisch vom Zustand des Programms abhaengt, waeren mehrere Destruktoren doch lediglich syntaktischer Zucker um das Gleiche zu erreichen. Spontan fallen mir da unions ein.</p>
<p>Mit der Frage &quot;wozu&quot; kann man doch jede Funktion aus einer Programmiersprache entfernen, welche ueber eine Turingmaschine hinausgeht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462926</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Fri, 07 Aug 2015 06:27:47 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Fri, 07 Aug 2015 18:30:01 GMT]]></title><description><![CDATA[<p>TGGC schrieb:</p>
<blockquote>
<p>Du hast noch nie in einem Destructor ein if oder switch Statement verwendet?</p>
</blockquote>
<p>Doch, klar. Aber kaum mit Bedingungen die nur immutable State prüfen.</p>
<p>TGGC schrieb:</p>
<blockquote>
<p>Immer wenn in einem Destructor Code ausgefuehrt wird, der dynamisch vom Zustand des Programms abhaengt, waeren mehrere Destruktoren doch lediglich syntaktischer Zucker um das Gleiche zu erreichen.</p>
</blockquote>
<p>Nur wenn der gesamte Destruktor als</p>
<pre><code class="language-cpp">T::~T()
{
    if (condition)
    {
        // ...
    }
    else
    {
        // ...
    }
}
</code></pre>
<p>geschrieben werden kann.<br />
Die Fälle wo das sinnvoll ist beschränken sich also auf Code wo die oben gezeigte Form ohne Codeduplizierung möglich wäre.</p>
<p>Weiters eben die Sache mit dem mutable State. Bei so ziemlich allen Beispielen die mir einfallen müsste es die Möglichkeit geben den &quot;designated destructor&quot; nachträglich zu ändern. Das würde die Spezifikation verkomplizieren. Man müsste definieren wie man den dtor nachträglich ändern kann. Man müsste definieren was der compilerdefinierte operator = macht. Usw.</p>
<p>Und am Ende wäre der Nutzen immer noch so klein, dass es sich mMn. einfach nicht auszahlt den Sprachstandard und den Lernaufwand dadurch deutlich zu vergrössern.<br />
Wenn man halbwegs durchgängig und feingranular RAII einsetzt ist die Anzahl der Klassen wo man überhaupt explizit definierte Destruktoren hat schonmal klein. Und nur in einem Bruchteil davon werden control-flow Statements vorkommen die man durch das &quot;mehrere Destruktoren&quot; Feature ersetzen könnte.</p>
<p>TGGC schrieb:</p>
<blockquote>
<p>Mit der Frage &quot;wozu&quot; kann man doch jede Funktion aus einer Programmiersprache entfernen, welche ueber eine Turingmaschine hinausgeht...</p>
</blockquote>
<p>Nicht wenn man damit meint dass man den Aufwand dem Nutzen gegenüberstellen sollte.<br />
(Wobei zum Aufwand natürlich nicht nur der Aufwand zählt der nötig ist um das Feature zu spezifizieren und in den Compilern zu implementieren, sondern auch wie oben schon erwähnt der Lernaufwand für neue Programmierer.)<br />
Ich dachte eigentlich dass klar war dass ich es so gemeint habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462991</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 07 Aug 2015 18:30:01 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sat, 08 Aug 2015 07:14:47 GMT]]></title><description><![CDATA[<p>Mit den gleichen Argumenten könntest du z.b. auch mehrere Konstruktoren ablehnen. Der Unterschied ist lediglich, das es dieses Feature schon gibt und du deshalb gewöhnt bist Anwendungen dafür zu kennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463032</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Sat, 08 Aug 2015 07:14:47 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sat, 08 Aug 2015 14:19:01 GMT]]></title><description><![CDATA[<p>Nein, könnte ich nicht.<br />
Liest du überhaupt was ich schreibe?<br />
Oder willst du mich einfach nur aufziehen?<br />
Alter Schwede...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463059</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 08 Aug 2015 14:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sat, 08 Aug 2015 15:05:52 GMT]]></title><description><![CDATA[<p>schau mal hier: <a href="http://www.cpp-tutor.de/cpp/le10/ctor_dtor.html" rel="nofollow">http://www.cpp-tutor.de/cpp/le10/ctor_dtor.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463063</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 08 Aug 2015 15:05:52 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sat, 08 Aug 2015 15:16:43 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Nein, könnte ich nicht.</p>
</blockquote>
<p>Wer sollte dich hindern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463064</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Sat, 08 Aug 2015 15:16:43 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sat, 08 Aug 2015 15:19:30 GMT]]></title><description><![CDATA[<p>TGGC schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Nein, könnte ich nicht.</p>
</blockquote>
<p>Wer sollte dich hindern?</p>
</blockquote>
<p>Logik? Das Argument bricht doch schon beim allerersten Schritt zusammen, wenn es um Parameter für die Konstruktion geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463065</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 08 Aug 2015 15:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sat, 08 Aug 2015 16:08:52 GMT]]></title><description><![CDATA[<p>Kosten:</p>
<p>Mehrere Konstruktoren zu erlauben macht in einer Sprache die bereits Overloads erlaubt nichts wesentlich komplizierter. Die Overload-Resolution Regeln gibt es bereits, der Ctor wird ganz normal anhand dieser ausgewählt.<br />
Davon abgesehen wird nichts verkompliziert. Es müssen keine speziellen Regeln definiert werden was beim operator = zu passieren hat, es muss kein zusätzlicher State in das Objekt rein.</p>
<p>Nutzen:</p>
<p>Mehrere Konstruktoren sind nötig um flexible konsturierbarkeit von Klassen zu ermöglichen wenn diese...<br />
* const Member haben<br />
* Member haben die nur per Ctor initialisiert werden können (d.h. nicht default konstruiert und danach so verändert werden können dass sie &quot;passen&quot;).<br />
Weiters erspart man sich dadurch lauter &quot;named Constructor&quot; Funktionen zu basteln.</p>
<p>Weiters sind mehrere Konstruktoren nötig für kopierbare und konvertierbare Klassen.</p>
<p>---</p>
<p>Der Nutzen ist also ziemlich klar und mMn. auch ziemlich gross, und die Kosten sind minimal.<br />
Also genau umgekehrt wie beim Destruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463068</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 08 Aug 2015 16:08:52 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sat, 08 Aug 2015 16:07:44 GMT]]></title><description><![CDATA[<p>Erhard Henkes schrieb:</p>
<blockquote>
<p>schau mal hier: <a href="http://www.cpp-tutor.de/cpp/le10/ctor_dtor.html" rel="nofollow">http://www.cpp-tutor.de/cpp/le10/ctor_dtor.html</a></p>
</blockquote>
<p>An wen ist das gerichtet und was soll er/sie da &quot;schauen&quot;? Einen ca. 10 seitigen Artikel mit nur &quot;schau mal da&quot; zu verlinken, in dem auf den ersten Blick nichts zu sehen ist was wirklich zum Thema passt, finde ich ein bisschen unpassend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463072</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 08 Aug 2015 16:07:44 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sat, 08 Aug 2015 18:49:44 GMT]]></title><description><![CDATA[<blockquote>
<p>&quot;The data items and the functions that manipulate them are combined into a structure called a class.&quot;</p>
<p>Ist jetzt ein Objekt und eine Klasse das gleiche oder was ist da der genaue Unterschied?</p>
<p>Dann noch eine Frage aus einem anderen Kapitel. Dort heisst es:</p>
<p>&quot;More than one constructor, but only one destructor, can be declared for a class&quot;</p>
<p>Also ein Konstruktor erzeugt und initialisiert ein Objekt und derer kann es mehrerer pro Objekt geben, aber ein Objekt kann nur einen einzige Destruktor besitzen. Was hat es denn damit auf sich? Wozu will man mehrere Konstruktoren für ein Objekt besitzen und wieso dann nur einen Destruktor?</p>
</blockquote>
<p>Ich finde, dass dieses Tutorial und speziell dieses Kapitel gut zu obiger allgemeiner Fragestellung passt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463085</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sat, 08 Aug 2015 18:49:44 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sat, 08 Aug 2015 19:49:15 GMT]]></title><description><![CDATA[<p>OK, danke, damit kann ich mehr anfangen <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>Also war es an den OP gerichtet...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463090</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 08 Aug 2015 19:49:15 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sun, 09 Aug 2015 20:23:10 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Logik? Das Argument bricht doch schon beim allerersten Schritt zusammen, wenn es um Parameter für die Konstruktion geht.</p>
</blockquote>
<p>Bei welchem allerersten Schritt soll denn welches Argument aus welchem Grund genau zusammenbrechen?</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Kosten:</p>
<p>Mehrere Konstruktoren zu erlauben macht in einer Sprache die bereits Overloads erlaubt nichts wesentlich komplizierter. Die Overload-Resolution Regeln gibt es bereits, der Ctor wird ganz normal anhand dieser ausgewählt.<br />
Davon abgesehen wird nichts verkompliziert. Es müssen keine speziellen Regeln definiert werden was beim operator = zu passieren hat, es muss kein zusätzlicher State in das Objekt rein.</p>
<p>Nutzen:</p>
<p>Mehrere Konstruktoren sind nötig um flexible konsturierbarkeit von Klassen zu ermöglichen wenn diese...<br />
* const Member haben<br />
* Member haben die nur per Ctor initialisiert werden können (d.h. nicht default konstruiert und danach so verändert werden können dass sie &quot;passen&quot;).<br />
Weiters erspart man sich dadurch lauter &quot;named Constructor&quot; Funktionen zu basteln.</p>
<p>Weiters sind mehrere Konstruktoren nötig für kopierbare und konvertierbare Klassen.</p>
<p>---</p>
<p>Der Nutzen ist also ziemlich klar und mMn. auch ziemlich gross, und die Kosten sind minimal.<br />
Also genau umgekehrt wie beim Destruktor.</p>
</blockquote>
<p>Selbst wenn man mal davon ausgehen wuerde, das obige Aussagen korrekt waeren:<br />
a) Du hast die Kosten und Nutzen der Destruktor gar nicht analysiert, wie kannst du also &quot;genau umgekehrt&quot; daraus folgern?<br />
b) Willst du jetzt sagen das ein Feature nur dann in C++ eingebaut werden sollte, wenn sein Nutzen mindestens so hoch wie der von Konstruktoren und die Kosten nicht hoeher als der von Konstruktoren ist?<br />
c) Wie genau sollen Kosten und Nutzen ueberhaupt als konkreter Wert berechnet werden um so eine quantitive Einschaetzung abzugeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463183</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Sun, 09 Aug 2015 20:23:10 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Sun, 09 Aug 2015 20:53:58 GMT]]></title><description><![CDATA[<p>TGGC schrieb:</p>
<blockquote>
<p>a) Du hast die Kosten und Nutzen der Destruktor gar nicht analysiert, wie kannst du also &quot;genau umgekehrt&quot; daraus folgern?</p>
</blockquote>
<p>Hab ich schon. Nur hab ich nicht &quot;Kosten&quot;: und &quot;Nutzen:&quot; davorgeschrieben.</p>
<p>TGGC schrieb:</p>
<blockquote>
<p>b) Willst du jetzt sagen das ein Feature nur dann in C++ eingebaut werden sollte, wenn sein Nutzen mindestens so hoch wie der von Konstruktoren und die Kosten nicht hoeher als der von Konstruktoren ist?</p>
</blockquote>
<p>Nein.<br />
Willst du jetzt sagen dass du ernsthaft der Meinung warst ich wollte das sagen, oder stellst du die Frage nur weil du mich lächerlich machen willst?</p>
<p>TGGC schrieb:</p>
<blockquote>
<p>c) Wie genau sollen Kosten und Nutzen ueberhaupt als konkreter Wert berechnet werden um so eine quantitive Einschaetzung abzugeben?</p>
</blockquote>
<p>Dass man das ganze nicht in konkrete, sinnvolle Zahlen packen kann ist klar. Das hindert Menschen aber nicht daran Entscheidungen anhand der Gegenüberstellung von Kosten und Nutzen zu treffen. Macht das Standard Committee dauernd.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463192</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 09 Aug 2015 20:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Mon, 10 Aug 2015 06:37:41 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Hab ich schon. Nur hab ich nicht &quot;Kosten&quot;: und &quot;Nutzen:&quot; davorgeschrieben.</p>
</blockquote>
<p>Heisst also, deine Analyse ist: &quot;mir faellt nichts ein&quot;. Super...</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Nein.<br />
Willst du jetzt sagen dass du ernsthaft der Meinung warst ich wollte das sagen, oder stellst du die Frage nur weil du mich lächerlich machen willst?</p>
</blockquote>
<p>Nein, ich war der Meinung, das du hier Zeug erzaehlst, was mit dem Thema 0 zu tun hat. Danke das du dies bestaetigst.</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Dass man das ganze nicht in konkrete, sinnvolle Zahlen packen kann ist klar.</p>
</blockquote>
<p>Warum also behaupten, da waere ein weiterer konkreter Grund?</p>
<p>Die ganze Diskussion mit dir ist sinnlos, weil faktisch einfach inkorrekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463218</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Mon, 10 Aug 2015 06:37:41 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt und Klasse und Konstruktoren on Mon, 10 Aug 2015 08:06:53 GMT]]></title><description><![CDATA[<p>TGGC schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Hab ich schon. Nur hab ich nicht &quot;Kosten&quot;: und &quot;Nutzen:&quot; davorgeschrieben.</p>
</blockquote>
<p>Heisst also, deine Analyse ist: &quot;mir faellt nichts ein&quot;. Super...</p>
</blockquote>
<p>Nein.<br />
Steht hier: <a href="https://www.c-plusplus.net/forum/p2462991#2462991">https://www.c-plusplus.net/forum/p2462991#2462991</a></p>
<p>TGGC schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Nein.<br />
Willst du jetzt sagen dass du ernsthaft der Meinung warst ich wollte das sagen, oder stellst du die Frage nur weil du mich lächerlich machen willst?</p>
</blockquote>
<p>Nein, ich war der Meinung, das du hier Zeug erzaehlst, was mit dem Thema 0 zu tun hat. Danke das du dies bestaetigst.</p>
</blockquote>
<p>Ebenfalls nein, was ich hier erzähle hat mit der Sache sehr viel zu tun. Wenn du es nicht verstehst darfst du gerne nachfragen.</p>
<p>TGGC schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Dass man das ganze nicht in konkrete, sinnvolle Zahlen packen kann ist klar.</p>
</blockquote>
<p>Warum also behaupten, da waere ein weiterer konkreter Grund?</p>
</blockquote>
<p>Willst <em>du</em> jetzt etwa behaupten dass es überhaupt keine Gründe gibt warum ein Feature in den Standard aufgenommen wir bzw. eben nicht? Deine Behauptung dass es an dem <em>&quot;maximale Effizienz&quot; Ansatz von C++</em> ist einfach nur Blödsinn. Einen Hinweis darauf dass es Quatsch ist lieferst du auch selbst gleich mit - die virtuellen Destruktoren. Die dürfte es dann nämlich genau so wenig geben.</p>
<p>TGGC schrieb:</p>
<blockquote>
<p>Die ganze Diskussion mit dir ist sinnlos, weil faktisch einfach inkorrekt.</p>
</blockquote>
<p>ROFL<br />
Das sagt der richtige.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2463223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2463223</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 10 Aug 2015 08:06:53 GMT</pubDate></item></channel></rss>