<?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[Klassen Initialisierung]]></title><description><![CDATA[<p>Hallo,</p>
<p>leider habe ich in keinen der Bücher/Internet hierzu eine Antwort gefunden. Vielleicht kann mir hier ja wer helfen. Angenommen ich habe eine Klasse Häuser, diese Häuser haben einen Namen...</p>
<p>Initiliasiert wird der Name über den Konstrukter.</p>
<pre><code class="language-cpp">class Haeuser
{
private:
static string Name;

public:

Haeuser(string);
~Haeuser(void)

}

Haeuser::Haeuser(string t)
{
Name=t;

 }

string Haeuser::Name=&quot;&quot;;

Main:

for (int i=0;i&lt;3;i++)
{
Haeuser gelb(&quot;neu&quot;)
}
</code></pre>
<p>Den Namen der Häuser habe ich mit static festgesetzt... legt der in der Main() 1 Mal die Klasse Häuser an oder 3 Mal???<br />
Wenn 3 Mal, wie bekomme ich ihn dazu, dass wenn der Name identisch ist, er die Klasse nicht erneut anlegen soll? Oder muss ich extra nochmal einen Vektor oder so anlegen, welcher sich die angelegten Objekte merkt und dann dort immer suchen obs den Namen schon gibt? Oder überlade ich für die Häuser einfach den operator== ??? Gibt es hierzu vielleicht auch Seiten im Internet, welche empfehlenswert sind?</p>
<p>Dankeschön</p>
<p>Viele Grüße</p>
<p>Jullia</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/280269/klassen-initialisierung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 05:06:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/280269.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Jan 2011 15:03:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen Initialisierung on Wed, 12 Jan 2011 15:17:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>leider habe ich in keinen der Bücher/Internet hierzu eine Antwort gefunden. Vielleicht kann mir hier ja wer helfen. Angenommen ich habe eine Klasse Häuser, diese Häuser haben einen Namen...</p>
<p>Initiliasiert wird der Name über den Konstrukter.</p>
<pre><code class="language-cpp">class Haeuser
{
private:
static string Name;

public:

Haeuser(string);
~Haeuser(void)

}

Haeuser::Haeuser(string t)
{
Name=t;

 }

string Haeuser::Name=&quot;&quot;;

Main:

for (int i=0;i&lt;3;i++)
{
Haeuser gelb(&quot;neu&quot;)
}
</code></pre>
<p>Den Namen der Häuser habe ich mit static festgesetzt... legt der in der Main() 1 Mal die Klasse Häuser an oder 3 Mal???<br />
Wenn 3 Mal, wie bekomme ich ihn dazu, dass wenn der Name identisch ist, er die Klasse nicht erneut anlegen soll? Oder muss ich extra nochmal einen Vektor oder so anlegen, welcher sich die angelegten Objekte merkt und dann dort immer suchen obs den Namen schon gibt? Oder überlade ich für die Häuser einfach den operator== ??? Gibt es hierzu vielleicht auch Seiten im Internet, welche empfehlenswert sind?</p>
<p>Dankeschön</p>
<p>Viele Grüße</p>
<p>Jullia</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2005767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2005767</guid><dc:creator><![CDATA[Julia_Prog]]></dc:creator><pubDate>Wed, 12 Jan 2011 15:17:39 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Initialisierung on Wed, 12 Jan 2011 15:15:40 GMT]]></title><description><![CDATA[<p>'Der' legt gar keine Klassen an. Klassen legst du an indem du sie schreibst. Was angelegt wird, sind Instanzen einer Klasse, oder auch Objekte oder Exemplare genannt.<br />
In deiner Main funktion wird 3mal eine Haeuser Instanz angelegt und direkt wieder gelöscht. Dabei wird jedes mal das statische Feld <code>Name</code> mit &quot;neu&quot; überschrieben, das für jede Instanz der Klasse gilt.<br />
Ich kann irgendwie nicht wirklich erraten was du vor hast, um dir weiter zu helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2005773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2005773</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 12 Jan 2011 15:15:40 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Initialisierung on Wed, 12 Jan 2011 15:17:08 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Julia_Prog schrieb:</p>
<blockquote>
<p>Den Namen der Häuser habe ich mit static festgesetzt...</p>
</blockquote>
<p>Was willst du den damit genau erreichen?</p>
<p>Julia_Prog schrieb:</p>
<blockquote>
<p>legt der in der Main() 1 Mal die Klasse Häuser an oder 3 Mal???</p>
</blockquote>
<p>Das Objekt wird bei jedem Schleifendurchlauf erstellt und am Ende wieder zerstört. Es existiert also bei jedem Durchlauf ein neues Haus.</p>
<p>Julia_Prog schrieb:</p>
<blockquote>
<p>Wenn 3 Mal, wie bekomme ich ihn dazu, dass wenn der Name identisch ist, er die Klasse nicht erneut anlegen soll? Oder muss ich extra nochmal einen Vektor oder so anlegen, welcher sich die angelegten Objekte merkt und dann dort immer suchen obs den Namen schon gibt? Gibt es hierzu vielleicht auch Seiten im Internet, welche empfehlenswert sind?</p>
</blockquote>
<p>Schau dir mal eine map an. Das ist ein Schlüssel-Wert-Container, dh. statt einem Index hast du einen beliebigen Schlüssel, mit dem du auf deine Werte zugreifen kannst. Wenn der Schlüssel also schon vorhanden, dann gibt es das Objekt schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2005774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2005774</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Wed, 12 Jan 2011 15:17:08 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Initialisierung on Wed, 12 Jan 2011 15:33:11 GMT]]></title><description><![CDATA[<p>Ich lese eine Datei ein, da stehen verschiedene Häusernamen drin und die Distanzen zwischen den Häusern. Das ganze wollte ich in einem Vektor/Map oder was weiß ich was speichern...</p>
<p>Natürlich kommen da auch Häuser doppelt vor</p>
<p>Haus1; Haus2; 4<br />
Haus1; Haus3; 2<br />
Haus2; Haus3; 5</p>
<p>und meine Sorge war ja nur, dass wenn er später mit den Distanzen rechnet, dass er auch weiß das Haus1 immer Haus1 <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="🙂"
    /> ist und ich dachte das ich sonst ja immer eine neue Instanz von Haus1 anlege.</p>
<p>Oder soll ich in der Klasse Haeuser den == Operator überladen? Oder macht das kein Sinn? Meine C++ Anfänger Bücher helfen da nicht weiter <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/2005778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2005778</guid><dc:creator><![CDATA[Julia_Prog]]></dc:creator><pubDate>Wed, 12 Jan 2011 15:33:11 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Initialisierung on Wed, 12 Jan 2011 15:37:57 GMT]]></title><description><![CDATA[<p>z.B. so:</p>
<pre><code class="language-cpp">#include &lt;set&gt;
#include &lt;vector&gt;
#include &lt;iostream&gt;

class Haus
{
public:
    Haus(const std::string&amp; name) : 
      name_(name)
    {}
    // benötigt für std::set (weiter unten):
    bool operator&lt;(const Haus&amp; other) const
    {
        return name_ &lt; other.name_;
    }
private:
    std::string name_;
};

struct Entfernung
{
    Entfernung(const Haus&amp; v, const Haus&amp; n, unsigned int entf) :
        von(&amp;v), nach(&amp;n), km(entf)
    {}
    const Haus* von, *nach;
    unsigned int km;
};

class Entfernungen
{
public:
    void Add(const std::string&amp; von, const std::string&amp; nach, unsigned int km)
    {
        const Haus&amp; h1 = *(haeuser_.insert(von).first);  // Haus einfügen, oder das schon bekannte holen
        const Haus&amp; h2 = *(haeuser_.insert(nach).first);  // dito
        entfernungen_.push_back(Entfernung(h1, h2, km));
    }
private:
    std::set&lt;Haus&gt; haeuser_;  // hier sind alle bisher bekannten häuser gespeichert. 
                              // Sie unterscheiden sich durch den Namen
    std::vector&lt;Entfernung&gt; entfernungen_;
};

int main() 
{
    using namespace std;
    Entfernungen e;
    e.Add(&quot;haus 1&quot;, &quot;haus 2&quot;, 4);
    e.Add(&quot;haus 1&quot;, &quot;haus 3&quot;, 2);
    e.Add(&quot;haus 2&quot;, &quot;haus 3&quot;, 1);

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2005782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2005782</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 12 Jan 2011 15:37:57 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Initialisierung on Wed, 12 Jan 2011 15:38:49 GMT]]></title><description><![CDATA[<p>Dann ist static für eine Membervaribale nicht das was du suchst. Damit würdest du einen Namen für alle Häuser haben. In deinem Fall überschreibst du einfach nur immer den Namen. Mach das static weg, dann hat jedes Haus einen eigenen Namen.<br />
Die Häuser in eine Map einzusortieren klingt schon mal nicht verkehrt. Zusätzlich würde ich jedem Haus noch eine Map mitgeben, womit ich die Distanzen dann einem Haus zuordnen kann.</p>
<pre><code class="language-cpp">#include &lt;map&gt;

class Haus
{
    std::string name;   // Hausname
    std::map&lt;std::string, int&gt; distanzen; // Key: Hausname; Value: Distanz
};
</code></pre>
<p>Darüber kannst du dann ganz einfach über den Namen die jeweilige Distanz raus suchen lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2005784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2005784</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Wed, 12 Jan 2011 15:38:49 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Initialisierung on Wed, 12 Jan 2011 15:40:38 GMT]]></title><description><![CDATA[<p>Dankeschön... Sieht zumindest sehr gut aus.. ich muss mir das aber nochmal in Ruhe anschauen, dass ich programmieren hatte, ist einfach zuuu lange her <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="😞"
    /> Gibts irgendwo ne Seite wo man sowas vertiefen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2005785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2005785</guid><dc:creator><![CDATA[Julia_Prog]]></dc:creator><pubDate>Wed, 12 Jan 2011 15:40:38 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen Initialisierung on Wed, 12 Jan 2011 16:51:36 GMT]]></title><description><![CDATA[<p>Ich würde dir unbedingt dazu raten, das mit einem Buch zu vertiefen. Hinweise zu guten Büchern müsstest du hier irgendwo finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2005806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2005806</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 12 Jan 2011 16:51:36 GMT</pubDate></item></channel></rss>