<?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[Frage zu Strukturen und Funktionen]]></title><description><![CDATA[<p>Hi.Ich habe vor ein kleines Periodensystem als DOS Anwendung zu programmieren.<br />
Sollte ja nicht gerade schwer sein.Die Elemente definiert man als Strukturen und eine Funktion gibt immer die Werte (Ordnungszahl,Masse,Schale,Hauptgruppe,usw...) von dem Element ein,das der User eingibt.<br />
Nur mein Problem ist.Wie setze ich es um,dass die Funktion weiß,was der User für ein Element eingegeben hat?<br />
Mein Ansatz wäre in etwa:</p>
<pre><code>void ausgeben(element auswahl)
{
   cout &lt;&lt;auswahl.ordnungszahl&lt;&lt;auswahl.masse //usw...
}
int main()
{
        ...
        string auswahl;
        cin &gt;&gt;auswahl;
}
</code></pre>
<p>Wenn ich es so mache,rechnet die funktion ausgeben aber natürlich nicht mit dem Wert von &quot;auswahl&quot;(beispielsweise &quot;Wasserstoff&quot;,sondern mit dem Namen.<br />
Wie schaffe ich es,dass die Funktion den Wert von &quot;auswahl&quot; liest und nicht den Namen?<br />
Ich denke das lässt sich über Pointer machen,aber ich bin mir nicht sicher wie genau das aussehen müsste.<br />
Danke im Vorraus <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/topic/285050/frage-zu-strukturen-und-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 15:15:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285050.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Apr 2011 11:49:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 11:49:13 GMT]]></title><description><![CDATA[<p>Hi.Ich habe vor ein kleines Periodensystem als DOS Anwendung zu programmieren.<br />
Sollte ja nicht gerade schwer sein.Die Elemente definiert man als Strukturen und eine Funktion gibt immer die Werte (Ordnungszahl,Masse,Schale,Hauptgruppe,usw...) von dem Element ein,das der User eingibt.<br />
Nur mein Problem ist.Wie setze ich es um,dass die Funktion weiß,was der User für ein Element eingegeben hat?<br />
Mein Ansatz wäre in etwa:</p>
<pre><code>void ausgeben(element auswahl)
{
   cout &lt;&lt;auswahl.ordnungszahl&lt;&lt;auswahl.masse //usw...
}
int main()
{
        ...
        string auswahl;
        cin &gt;&gt;auswahl;
}
</code></pre>
<p>Wenn ich es so mache,rechnet die funktion ausgeben aber natürlich nicht mit dem Wert von &quot;auswahl&quot;(beispielsweise &quot;Wasserstoff&quot;,sondern mit dem Namen.<br />
Wie schaffe ich es,dass die Funktion den Wert von &quot;auswahl&quot; liest und nicht den Namen?<br />
Ich denke das lässt sich über Pointer machen,aber ich bin mir nicht sicher wie genau das aussehen müsste.<br />
Danke im Vorraus <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/2048620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048620</guid><dc:creator><![CDATA[Babb]]></dc:creator><pubDate>Wed, 13 Apr 2011 11:49:13 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 11:51:49 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich verstehe dein Problem nicht genau. Könntest Du vielleicht spezifizieren:<br />
a) Was der Benutzer genau eingeben soll?<br />
b) Was daraus in deinem Programm geschehen soll (Speicherung in Struktur, direkte Ausgabe)?<br />
c) Was Du mit Rechnen in diesem Zusammenhang meinst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048622</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 13 Apr 2011 11:51:49 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 12:01:06 GMT]]></title><description><![CDATA[<p>steht eigentlich in dem Post...<br />
Beispiel:</p>
<p>1.Ich starte das Programm und werde aufgefordert ein Element einzugeben,über das ich mehr wissen will.<br />
2.Ich gebe &quot;Wasserstoff&quot; ein.<br />
Im Programm sind alle Elemente als Strukturen gespeichert.<br />
3.Die Funktion &quot;ausgeben&quot; führt ihre Anweisungen mit dem angegebenen Parameter.Also &quot;Wasserstoff&quot; aus.<br />
4.Auf dem Bildschirm erscheinen die chemischen Daten von dem Element Wasserstoff.</p>
<p>Die Frage war :wie schaffe ich es,dass meine Funktion seine Anweisungen nicht mit dem Parameter &quot;auswahl&quot; ausführt,denn so heißt die eingegebene Variable,sondern ,wie oben beschrieben,mit dem Parameter &quot;Wasserstoff&quot;,also dem Wert der Variablen.<br />
Hoffe das ist verständlich...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048633</guid><dc:creator><![CDATA[Babb]]></dc:creator><pubDate>Wed, 13 Apr 2011 12:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 12:03:55 GMT]]></title><description><![CDATA[<p>Achso, Du suchst nach einer einfachen Parameterübergabe.</p>
<pre><code class="language-cpp">void ausgeben(const std::string&amp; auswahl)
{
    std::cout &lt;&lt; /* ... */;
}

int main()
{
    std::string eingabe;
    std::cin &gt;&gt; eingabe;
    ausgeben(eingabe);
}
</code></pre>
<p>Natürlich hat ausgeben jetzt erstmal nur den String. Aber die Frage, wie Du über string zu einer Struktur-Instanz kommst, kann man natürlich nur beantworten, wenn man weiß, wie diese gespeichert sind.</p>
<p>Hilft Dir das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048638</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 13 Apr 2011 12:03:55 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 12:05:05 GMT]]></title><description><![CDATA[<p>Ganz einfach: du brauchst eine Funktion, die dem Namen &quot;Wasserstoff&quot; die Elemetinstanz zuordnet. Also sowas wie</p>
<pre><code class="language-cpp">element get_element(string name)
{
    // suche nach name in allen Elementen
}

...

ausgeben(get_element(auswahl));
</code></pre>
<p>Möglich wäre auch eine einfach Map, bei der Funktion bist du aber flexibler bei verschiedenen Schreibweisen (wenn der Nutzer z.B. auch &quot;H&quot; eingeben darf).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048639</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Wed, 13 Apr 2011 12:05:05 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 12:14:23 GMT]]></title><description><![CDATA[<p>Ich würde mir eine Klasse chemicalElements erstellen, diese hat eben die verschiedenen Datenmember wie Ordnungszahl, Hauptgruppe, Periode, Massenzahl, Elektronegativität und so weiter. Dann überladest du für diese Klasse den Ausgabeoperator. Du erstellst dann alle Elemente und wirfst sie zum Beispiel in eine Map</p>
<pre><code class="language-cpp">std::map&lt; chemicalElements, const std::string &gt; elements
</code></pre>
<p>Nun ließt du die Eingabe vom User ein und machst eine Funktion, die deine Map nach dem eingegebenen Element durchsucht. Ist dieses Element gefunden gibst du es mittels</p>
<pre><code class="language-cpp">cout &lt;&lt; wasserstoff
</code></pre>
<p>aus( du musst natürlich wie gesagt den Ausgabeoperator überladen haben.</p>
<p>Kannst es ja mal so versuchen, wenn du nicht weiter kommst melde dich einfach, dann wird dir sicherlich geholfen;-)( hatte aber jetzt echt keine Lust kurz den Code zu schreiben <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>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048653</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Wed, 13 Apr 2011 12:14:23 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 12:25:46 GMT]]></title><description><![CDATA[<p>fr33g schrieb:</p>
<blockquote>
<p>Ich würde mir eine Klasse chemicalElements erstellen, diese hat eben die verschiedenen Datenmember wie Ordnungszahl, Hauptgruppe, Periode, Massenzahl, Elektronegativität und so weiter. Dann überladest du für diese Klasse den Ausgabeoperator. Du erstellst dann alle Elemente und wirfst sie zum Beispiel in eine Map</p>
<pre><code class="language-cpp">std::map&lt; chemicalElements, const std::string &gt; elements
</code></pre>
<p>Nun ließt du die Eingabe vom User ein und machst eine Funktion, die deine Map nach dem eingegebenen Element durchsucht. Ist dieses Element gefunden gibst du es mittels</p>
<pre><code class="language-cpp">cout &lt;&lt; wasserstoff
</code></pre>
<p>aus( du musst natürlich wie gesagt den Ausgabeoperator überladen haben.</p>
<p>Kannst es ja mal so versuchen, wenn du nicht weiter kommst melde dich einfach, dann wird dir sicherlich geholfen;-)( hatte aber jetzt echt keine Lust kurz den Code zu schreiben <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>
<p>Lg freeG</p>
</blockquote>
<p>So werde ich es mal versuchen.Habe zwar noch nie etwas von Maps gehört aber ich schau mal ob ich das hinkrieg.<br />
Danke für die schnellen Antworten,ich melde mich wieder,wenn ich es ausprobiert habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048657</guid><dc:creator><![CDATA[Babb]]></dc:creator><pubDate>Wed, 13 Apr 2011 12:25:46 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 15:14:33 GMT]]></title><description><![CDATA[<p>fr33g schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::map&lt; chemicalElements, const std::string &gt; elements
</code></pre>
</blockquote>
<p>Du meinst</p>
<pre><code class="language-cpp">std::map&lt;std::string, ChemicalElement&gt; Elements;
</code></pre>
<p>oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048786</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 13 Apr 2011 15:14:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 15:56:49 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<p>fr33g schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::map&lt; chemicalElements, const std::string &gt; elements
</code></pre>
</blockquote>
<p>Du meinst</p>
<pre><code class="language-cpp">std::map&lt;std::string, ChemicalElement&gt; Elements;
</code></pre>
<p>oder?</p>
</blockquote>
<p>Ja klar <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="😃"
    /> , sorry war mein Fehler, passiert mal eben so auf die schnelle <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Danke für den Hinweis <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>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048820</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Wed, 13 Apr 2011 15:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 16:12:27 GMT]]></title><description><![CDATA[<p>Das &quot;Ultra-Design&quot; wäre natürlich ein Singleton mit mehreren Instanzen der Klasse (also allen verfügbaren Elementen), einer Zugriffsfunktion per String, die die deutsche Bezeichnung, die internationale Bezeichnung und das Elementsymbol durchsucht und, wenn verfügbar, die passende Instanz (sonst vielleicht eine Null-Instanz) zurückgibt, die man dann per Memberfunktion ausgeben kann oder ihre Informationen in einem String zusammengefasst bekommen kann, der dann ausgegeben werden kann. <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/2048836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048836</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 13 Apr 2011 16:12:27 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 16:19:12 GMT]]></title><description><![CDATA[<p>Ultra-Design und Singleton wirken geradezu parodisch, wenn man die parallele &quot;Diskussion&quot; in meinem Thread betrachtet (auch sonst). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048844</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 13 Apr 2011 16:19:12 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 16:39:16 GMT]]></title><description><![CDATA[<p>Kann mir mal jemand zeigen wie genau das mit der Map und dem Überladen in der Klasse funktionieren würde?Krieg das noch nicht so ganz hin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048860</guid><dc:creator><![CDATA[Babb]]></dc:creator><pubDate>Wed, 13 Apr 2011 16:39:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 16:51:03 GMT]]></title><description><![CDATA[<p>fr33g schrieb:</p>
<blockquote>
<p>Ich würde mir eine Klasse chemicalElements erstellen, diese hat eben die verschiedenen Datenmember wie Ordnungszahl, Hauptgruppe, Periode, Massenzahl, Elektronegativität und so weiter. Dann überladest du für diese Klasse den Ausgabeoperator. Du erstellst dann alle Elemente und wirfst sie zum Beispiel in eine Map</p>
<pre><code class="language-cpp">std::map&lt; chemicalElements, const std::string &gt; elements
</code></pre>
<p>Nun ließt du die Eingabe vom User ein und machst eine Funktion, die deine Map nach dem eingegebenen Element durchsucht. Ist dieses Element gefunden gibst du es mittels</p>
<pre><code class="language-cpp">cout &lt;&lt; wasserstoff
</code></pre>
<p>aus( du musst natürlich wie gesagt den Ausgabeoperator überladen haben.</p>
</blockquote>
<p>Ich würde das eher andersherum verwenden - der erste Template-Parameter von map&lt;&gt; ist der Suchschlüssel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26440">@Babb</a>: Wie weit bist du denn schon gekommen? Die Operator-Überladung brauchst du nicht unbedingt für den Anfang, da reicht es auch, eine Ausgabe-Methode für deine Klasse zu definieren.</p>
<p>Zu der map:</p>
<pre><code class="language-cpp">map&lt;string,Element&gt; Periodensystem;
//Periodensystem füllen:
Periodensystem[&quot;Wasserstoff&quot;] = Element(1,&quot;H&quot;,...);
Periodensystem[&quot;Helium&quot;]      = Element(2,&quot;He&quot;,...);
...

//Suchen und ausgeben
cin&gt;&gt;name;
map&lt;string,Element&gt;::iterator pos = Periodensystem.find(name);
if(pos != Periodensystem.end())
  pos-&gt;print();
else
  cout&lt;&lt;name&lt;&lt;&quot; wurde noch nicht entdeckt&quot;&lt;&lt;endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2048867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048867</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 13 Apr 2011 16:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 17:19:19 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">map&lt;string,Element&gt; Periodensystem; 
//Periodensystem füllen: 
Periodensystem[&quot;Wasserstoff&quot;] = Element(1,&quot;H&quot;,...); 
Periodensystem[&quot;Helium&quot;]      = Element(2,&quot;He&quot;,...); 
... 

//Suchen und ausgeben 
cin&gt;&gt;name; 
map&lt;string,Element&gt;::iterator pos = Periodensystem.find(name); 
if(pos != Periodensystem.end()) 
  pos-&gt;print(); 
else 
  cout&lt;&lt;name&lt;&lt;&quot; wurde noch nicht entdeckt&quot;&lt;&lt;endl;
</code></pre>
</blockquote>
<p>Und das soll einfach so in die Klasse? Ich nehm mal an,dass &quot;Element&quot;der Name der Struktur sein soll,in der die Elemente gespeichert sind und &quot;Periodensystem&quot; der Name der Map (oder meiner Klasse?) ist.</p>
<p>Brauch ich (mehr als) den Header &lt;map&gt; ?Bisschen viele Fragen,ich weiß aber ich hab mich mit Maps noch nie auseinander gesetzt und auch mit Klassen habe ich in C++ noch nicht viel gearbeitet,also bin ich mit der Syntax kein bisschen vertraut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048888</guid><dc:creator><![CDATA[Babb]]></dc:creator><pubDate>Wed, 13 Apr 2011 17:19:19 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 17:25:56 GMT]]></title><description><![CDATA[<p>Klar kannst du das alles in eine Klasse kapseln, in dem Fall solltest du die map&lt;&gt; selber eventuell umbenennen (und als privaten Member in die PeriodenSystem-Klasse packen). Der Code dort oben sollte nur demonstrieren, wie du die map verwenden kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048895</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 13 Apr 2011 17:25:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 17:36:15 GMT]]></title><description><![CDATA[<p>Ich geb dir mal ein Grundgerüst:</p>
<p>ChemicalElement.h:</p>
<pre><code class="language-cpp">#ifndef CHEMICAL_ELEMENT_H
#define CHEMICAL_ELEMENT_H

#include &lt;string&gt;

class ChemicalElement
{
    std::string international_name;
    std::string german_name;
    std::string element_symbol;
    int atomic_number;
    double element_weight;

    public:
    ChemicalElement(std::string const &amp;p_international_name, std::string const &amp;p_german_name, std::string const &amp;p_element_symbol, int p_atomic_number, double p_element_weight);
    ChemicalElement();
    ~ChemicalElement(){}

    std::string GetInformationString();
};

#endif //CHEMICAL_ELEMENT_H
</code></pre>
<p>ChemicalElement.cpp:</p>
<pre><code class="language-cpp">#include &quot;ChemicalElement.h&quot;
#include &lt;map&gt;
#include &lt;iostream&gt;

ChemicalElement::ChemicalElement(std::string const &amp;p_international_name, std::string const &amp;p_german_name, std::string const &amp;p_element_symbol, int p_atomic_number, double p_element_weight)
  : international_name(p_international_name)
  , german_name(p_german_name)
  , element_symbol(p_element_symbol)
  , atomic_number(p_atomic_number)
  , element_weight(p_element_weight)
{
}

ChemicalElement::ChemicalElement()
  : international_name(&quot;&quot;)
  , german_name(&quot;&quot;)
  , element_symbol(&quot;&quot;)
  , atomic_number(0)
  , element_weight(0.0)
{
}

std::string ChemicalElement::GetInformationString()
{
    //Hier die Informationen zusammenstellen und zurückgeben!
}

std::map&lt;std::string, ChemicalElement&gt; element_map;

void init_element_map()
{
    element_map[&quot;Wasserstoff&quot;] = ChemicalElement(&quot;Wasserstoff&quot;, &quot;Hydrogenium&quot;, &quot;H&quot;, 1, 1.004);
    //andere Elemente hinzufügen
}

int main()
{
    init_element_map();

    while(true)  //hier kann man natürlich noch eine &quot;Nochmal?-Abfrage&quot; einbauen
    {
        std::string element_name;
        //Element abfragen

        std::map&lt;std::string, ChemicalElement&gt;::iterator iter = element_map.find(element_name);
        if(iter == element_map.end())
        {
            std::cout &lt;&lt; &quot;Element existiert nicht!\n&quot;;
        }
        else
        {
            std::cout &lt;&lt; iter-&gt;second.GetInformationString();
        }
    }
}
</code></pre>
<p>(OK, das ist jetzt noch nicht perfekt gekapselt, aber es zeigt dir schonmal die Syntax <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048907</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 13 Apr 2011 17:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 17:57:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">ChemicalElement();
</code></pre>
<p>Ich mag diese Angewohnheit, Konstruktoren ohne sinnvolle Initialisierung einfach mal grundsätzlich anzubieten, nicht besonders. Hier ist halt etwas schade, dass man ohne Defaultkonstruktor den <code>std::map::operator[]</code> nicht mehr benutzen kann, dann müsste man eben zu <code>insert()</code> greifen.</p>
<pre><code class="language-cpp">~ChemicalElement(){}
</code></pre>
<p>Wozu?</p>
<pre><code class="language-cpp">std::string GetInformationString();
</code></pre>
<p>Hier fehlt eine <code>const</code> -Qualifizierung.</p>
<pre><code class="language-cpp">std::map&lt;std::string, ChemicalElement&gt; element_map;
</code></pre>
<p>Würde ich eher lokal deklarieren und übergeben. Eventuell wäre <code>typedef</code> nicht schlecht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048928</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 13 Apr 2011 17:57:58 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 18:26:48 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a>:<br />
Konstruktor - richtig, den habe ich erst nachher eingefügt, weil mir eingefallen ist, dass es sonst für Einsteiger noch komplizierter wird.<br />
Destruktor - Angewohnheit, den mit dazu zu schreiben<br />
const - richtig, vergessen, wenn auch hier nicht so wichtig<br />
typedef - mag ich in dem Fall nicht so (zumindest bei zweifacher Verwendung), Lokalisierung stimmt, ich habe ja gesagt, ich würde es am liebsten in einer Art Singleton machen, das wäre jetzt für den TE AFAIK aber zu kompliziert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048938</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 13 Apr 2011 18:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 18:43:00 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>fr33g schrieb:</p>
<blockquote>
<p>Ich würde mir eine Klasse chemicalElements erstellen, diese hat eben die verschiedenen Datenmember wie Ordnungszahl, Hauptgruppe, Periode, Massenzahl, Elektronegativität und so weiter. Dann überladest du für diese Klasse den Ausgabeoperator. Du erstellst dann alle Elemente und wirfst sie zum Beispiel in eine Map</p>
<pre><code class="language-cpp">std::map&lt; chemicalElements, const std::string &gt; elements
</code></pre>
<p>Nun ließt du die Eingabe vom User ein und machst eine Funktion, die deine Map nach dem eingegebenen Element durchsucht. Ist dieses Element gefunden gibst du es mittels</p>
<pre><code class="language-cpp">cout &lt;&lt; wasserstoff
</code></pre>
<p>aus( du musst natürlich wie gesagt den Ausgabeoperator überladen haben.</p>
</blockquote>
<p>Ich würde das eher andersherum verwenden - der erste Template-Parameter von map&lt;&gt; ist der Suchschlüssel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>fr33g schrieb:</p>
<blockquote>
<p>DocShoe schrieb:</p>
<blockquote>
<p>fr33g schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::map&lt; chemicalElements, const std::string &gt; elements
</code></pre>
</blockquote>
<p>Du meinst</p>
<pre><code class="language-cpp">std::map&lt;std::string, ChemicalElement&gt; Elements;
</code></pre>
<p>oder?</p>
</blockquote>
<p>Ja klar <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="😃"
    /> , sorry war mein Fehler, passiert mal eben so auf die schnelle <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Danke für den Hinweis <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>Lg freeG</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048946</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Wed, 13 Apr 2011 18:43:00 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Strukturen und Funktionen on Wed, 13 Apr 2011 19:27:11 GMT]]></title><description><![CDATA[<p>Vielen Dank,wxSkip!<br />
Hat sehr geholfen die Syntax zu verstehen.Ich setz den Entwurf dann wohl morgen um.<br />
Vielen Dank an die vielen hilfreichen und extrem schnellen Antworten,nettes Forum <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/2048968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048968</guid><dc:creator><![CDATA[Babb]]></dc:creator><pubDate>Wed, 13 Apr 2011 19:27:11 GMT</pubDate></item></channel></rss>