<?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[Funktion mit mehreren Rückgabetypen]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich möchte eine Funktion schreiben, die aus einer XML-Datei werte ausliest. Das Problem ist, das nicht alle Werte vom gleichen Datentyp sind. Wie schaffe ich es, diese Funktion so zu deklarieren, dass die Rückgabetypen unterschiedlich sind?</p>
<p>ich hab mir das so ungefähr vorgestellt, geht natürlich nicht, aber vielleicht als Denkanstoß, was ich mir vorstelle:</p>
<pre><code class="language-cpp">int getMapInfo( const std::string filePath, const std::string value ) {
	TiXmlDocument Doc( filePath.c_str() );
    Doc.LoadFile();

	TiXmlNode* InfoNode = Doc.FirstChild( &quot;metainfos&quot; );
	TiXmlElement* mapInfo = InfoNode-&gt;FirstChildElement( value.c_str() );

	return StrToInt( mapInfo-&gt;GetText() );
}

std::string getMapInfo( const std::string filePath, const std::string value ) {
	TiXmlDocument Doc( filePath.c_str() );
    Doc.LoadFile();

	TiXmlNode* InfoNode = Doc.FirstChild( &quot;metainfos&quot; );
	TiXmlElement* mapInfo = InfoNode-&gt;FirstChildElement( value.c_str() );

	return mapInfo-&gt;GetText();
}
</code></pre>
<p>Ich würde mich freuen, wenn ihr mir da helfen könntet, denn die Alternative ein Struct zurück zu geben ist mir irgendwie zu unelegant.</p>
<p>Mit freundlichen Grüßen<br />
Kasimir</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/264538/funktion-mit-mehreren-rückgabetypen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 18:56:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264538.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Apr 2010 00:09:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion mit mehreren Rückgabetypen on Fri, 09 Apr 2010 00:10:44 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich möchte eine Funktion schreiben, die aus einer XML-Datei werte ausliest. Das Problem ist, das nicht alle Werte vom gleichen Datentyp sind. Wie schaffe ich es, diese Funktion so zu deklarieren, dass die Rückgabetypen unterschiedlich sind?</p>
<p>ich hab mir das so ungefähr vorgestellt, geht natürlich nicht, aber vielleicht als Denkanstoß, was ich mir vorstelle:</p>
<pre><code class="language-cpp">int getMapInfo( const std::string filePath, const std::string value ) {
	TiXmlDocument Doc( filePath.c_str() );
    Doc.LoadFile();

	TiXmlNode* InfoNode = Doc.FirstChild( &quot;metainfos&quot; );
	TiXmlElement* mapInfo = InfoNode-&gt;FirstChildElement( value.c_str() );

	return StrToInt( mapInfo-&gt;GetText() );
}

std::string getMapInfo( const std::string filePath, const std::string value ) {
	TiXmlDocument Doc( filePath.c_str() );
    Doc.LoadFile();

	TiXmlNode* InfoNode = Doc.FirstChild( &quot;metainfos&quot; );
	TiXmlElement* mapInfo = InfoNode-&gt;FirstChildElement( value.c_str() );

	return mapInfo-&gt;GetText();
}
</code></pre>
<p>Ich würde mich freuen, wenn ihr mir da helfen könntet, denn die Alternative ein Struct zurück zu geben ist mir irgendwie zu unelegant.</p>
<p>Mit freundlichen Grüßen<br />
Kasimir</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879765</guid><dc:creator><![CDATA[Kasimir87]]></dc:creator><pubDate>Fri, 09 Apr 2010 00:10:44 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit mehreren Rückgabetypen on Fri, 09 Apr 2010 00:15:27 GMT]]></title><description><![CDATA[<p>Du musst entweder eine Gemeinsamkeit finden, um die Typen abstrakt ansprechen zu können, oder sie explizit unterscheiden. Als Gemeinsamkeit bietet sich eine abstrakte Basisklasse an, die virtuelle Funktionen anbietet. Da <code>int</code> und <code>std::string</code> schon fertig sind, musst du sie wrappen. Die andere Möglichkeit wäre eben ein <code>getIntMapInfo()</code> und <code>getStringMapInfo()</code> .</p>
<p>Oder wie stellst du dir bei dem statischen Typsystem von C++ vor, je nachdem einen anderen Typen zu haben? Deklarieren und alles musst du ja auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879768</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 09 Apr 2010 00:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit mehreren Rückgabetypen on Fri, 09 Apr 2010 00:18:07 GMT]]></title><description><![CDATA[<p>Um diese Uhrzeit zu Schreiben sollte ich wohl lassen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> ich beraff das alles nicht mehr was ich mache <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 />
Ich denke, Deine letzte Idee war die beste, einfach eine getStringMapInfo() und ein int Äquivalent zu schreiben.<br />
Viele Dank für den Denkanstoß!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879770</guid><dc:creator><![CDATA[Kasimir87]]></dc:creator><pubDate>Fri, 09 Apr 2010 00:18:07 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion mit mehreren Rückgabetypen on Fri, 09 Apr 2010 00:24:05 GMT]]></title><description><![CDATA[<p>Kasimir87 schrieb:</p>
<blockquote>
<p>Ich denke, Deine letzte Idee war die beste, einfach eine getStringMapInfo() und ein int Äquivalent zu schreiben.</p>
</blockquote>
<p>Es ist die naheliegendste. Aber die beste? So musst du im Code eingravieren, ob nun ein <code>int</code> oder <code>std::string</code> als nächstes kommt und hast keine Änderungsmöglichkeiten zur Laufzeit mehr. Fehlerbehandlung, falls dann doch etwas anderes kommt, musst du auch einbauen.</p>
<p>Kann aber gut sein, dass das überhaupt nichts ausmacht. Nur so... <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/1879775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879775</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 09 Apr 2010 00:24:05 GMT</pubDate></item></channel></rss>