<?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[C++ Übergeben von komplexen Objekten aus Funktionen]]></title><description><![CDATA[<p>Ein herzliches Hallo,</p>
<p>so nachdem ich in den letzten Tagen meine erste Cpp erfahrung gesammelt habe, möchte ich nun ein Projekt umsetzen, jedoch habe ich ein Problem.</p>
<p>Ich habe eine Klasse &quot;Luftraum&quot; definiert in meinem Hpp-File declariert.<br />
Hier die Datei &quot;OwnHeader.hpp&quot;:</p>
<pre><code>class luftraum
{
private:
    //Variables
    std::string scategory;
    std::string sname;
    int istartlevel;
    int istoplevel;
    int ilaenge;

public:

    //Constructor
    luftraum()
    //Function
    int pruefen(float ftestx, float ftesty);
    void writecat(std::string scat);
    void writename(std::string sLRname);
    void writeislevel(int islevel);
    void writeistlevel(int istlevel);
    void GetInfo();

};

void LRFilelesen();
</code></pre>
<p>und in meinem Hauptprogramm &quot;Main.cpp&quot; möchte eine Unterfunktion aufrufen, die einen Vektor aus sehr vielen Objekten der Klasse Luftraum erstellt.</p>
<p>Hier die &quot;OwnHeader.cpp&quot;</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;EigenerHeader.hpp&quot;
#include &lt;vector&gt;
#include &lt;sstream&gt;
#include &lt;fstream&gt;
using namespace std;

vector&lt;luftraum&gt; LRListe;
void LRFilelesen()
{
    luftraum tempLR;
    int anzahlLR=0;
    string line;
    string stempcat;
    ifstream LRfile (&quot;Luftraum.txt&quot;);
    if (LRfile.is_open())
	{
	while ( getline (LRfile,line) )
	    {
		if(anzahlLR!=0){
            LRListe.push_back(tempLR);
        }
            luftraum tempLR;
			anzahlLR++;

		}
	    LRfile.close();

	}
	else cout &lt;&lt; &quot;Unable to open file Luftraum&quot;;
}
</code></pre>
<p>Hier werden pro Eingelesender Zeile ein Objekt Luftraum erstellt und an den Vektor LRListe angehängt.</p>
<p>Die Datei &quot;Main.cpp&quot; sieht wie folgt aus:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &quot;EigenerHeader.hpp&quot;

using namespace std;

vector&lt;luftraum&gt; Liste;
int main()
{
    LRFilelesen();
    //Hier soll jedoch der Vektor &quot;LRListe&quot; aus der Unterfunktion LRFilelesen übertragen werden auf den Vektor &quot;Liste&quot;.

    return 0;
}
</code></pre>
<p>Im Grund fehlt mir die Information wie ich komplexe Objekte wie einen Vektor gefüllt mit Objekten aus einer Funktion mithilfe von Return an die Main Funktion übergeben kann? Am Ende möchte ich folgendes erreichen:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &quot;EigenerHeader.hpp&quot;

using namespace std;

vector&lt;luftraum&gt; Liste;
int main()
{
    luftraum aktLR;
    Liste=LRFilelesen(); //&lt;&lt;--------- Hier wird der VEktor übertragen
    aktLR=Liste.at(1);

    cout &lt;&lt; aktLR.Name &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Aber ich bekomme immer errors wenn ich &quot;void LRFilelesen()&quot; in &quot;vector&lt;luftraum&gt; LRFilelesen()&quot; einsetze...</p>
<p>Vielleich kann mir ja jemand helfen <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>Vielen Dank schon einmal! Zusätzlich schon einmal entschuldigung wenn ich formell mich nicht korrekt ausgedrückt habe, bzw meinen Post schlecht dargestellt habe. First time in a Forum!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/340006/c-übergeben-von-komplexen-objekten-aus-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 15:21:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/340006.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Oct 2016 12:49:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Übergeben von komplexen Objekten aus Funktionen on Thu, 13 Oct 2016 12:49:02 GMT]]></title><description><![CDATA[<p>Ein herzliches Hallo,</p>
<p>so nachdem ich in den letzten Tagen meine erste Cpp erfahrung gesammelt habe, möchte ich nun ein Projekt umsetzen, jedoch habe ich ein Problem.</p>
<p>Ich habe eine Klasse &quot;Luftraum&quot; definiert in meinem Hpp-File declariert.<br />
Hier die Datei &quot;OwnHeader.hpp&quot;:</p>
<pre><code>class luftraum
{
private:
    //Variables
    std::string scategory;
    std::string sname;
    int istartlevel;
    int istoplevel;
    int ilaenge;

public:

    //Constructor
    luftraum()
    //Function
    int pruefen(float ftestx, float ftesty);
    void writecat(std::string scat);
    void writename(std::string sLRname);
    void writeislevel(int islevel);
    void writeistlevel(int istlevel);
    void GetInfo();

};

void LRFilelesen();
</code></pre>
<p>und in meinem Hauptprogramm &quot;Main.cpp&quot; möchte eine Unterfunktion aufrufen, die einen Vektor aus sehr vielen Objekten der Klasse Luftraum erstellt.</p>
<p>Hier die &quot;OwnHeader.cpp&quot;</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;EigenerHeader.hpp&quot;
#include &lt;vector&gt;
#include &lt;sstream&gt;
#include &lt;fstream&gt;
using namespace std;

vector&lt;luftraum&gt; LRListe;
void LRFilelesen()
{
    luftraum tempLR;
    int anzahlLR=0;
    string line;
    string stempcat;
    ifstream LRfile (&quot;Luftraum.txt&quot;);
    if (LRfile.is_open())
	{
	while ( getline (LRfile,line) )
	    {
		if(anzahlLR!=0){
            LRListe.push_back(tempLR);
        }
            luftraum tempLR;
			anzahlLR++;

		}
	    LRfile.close();

	}
	else cout &lt;&lt; &quot;Unable to open file Luftraum&quot;;
}
</code></pre>
<p>Hier werden pro Eingelesender Zeile ein Objekt Luftraum erstellt und an den Vektor LRListe angehängt.</p>
<p>Die Datei &quot;Main.cpp&quot; sieht wie folgt aus:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &quot;EigenerHeader.hpp&quot;

using namespace std;

vector&lt;luftraum&gt; Liste;
int main()
{
    LRFilelesen();
    //Hier soll jedoch der Vektor &quot;LRListe&quot; aus der Unterfunktion LRFilelesen übertragen werden auf den Vektor &quot;Liste&quot;.

    return 0;
}
</code></pre>
<p>Im Grund fehlt mir die Information wie ich komplexe Objekte wie einen Vektor gefüllt mit Objekten aus einer Funktion mithilfe von Return an die Main Funktion übergeben kann? Am Ende möchte ich folgendes erreichen:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &quot;EigenerHeader.hpp&quot;

using namespace std;

vector&lt;luftraum&gt; Liste;
int main()
{
    luftraum aktLR;
    Liste=LRFilelesen(); //&lt;&lt;--------- Hier wird der VEktor übertragen
    aktLR=Liste.at(1);

    cout &lt;&lt; aktLR.Name &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Aber ich bekomme immer errors wenn ich &quot;void LRFilelesen()&quot; in &quot;vector&lt;luftraum&gt; LRFilelesen()&quot; einsetze...</p>
<p>Vielleich kann mir ja jemand helfen <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>Vielen Dank schon einmal! Zusätzlich schon einmal entschuldigung wenn ich formell mich nicht korrekt ausgedrückt habe, bzw meinen Post schlecht dargestellt habe. First time in a Forum!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511459</guid><dc:creator><![CDATA[net-attack]]></dc:creator><pubDate>Thu, 13 Oct 2016 12:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Übergeben von komplexen Objekten aus Funktionen on Thu, 13 Oct 2016 12:52:54 GMT]]></title><description><![CDATA[<pre><code>vector&lt;luftraum&gt; LRFilelesen()
{
    vector&lt;luftraum&gt; LRListe

    luftraum tempLR;
    int anzahlLR=0;
    string line;
    string stempcat;
    ifstream LRfile (&quot;Luftraum.txt&quot;);
    if (LRfile.is_open())
    {
    while ( getline (LRfile,line) )
        {
        if(anzahlLR!=0){
            LRListe.push_back(tempLR);
        }
            luftraum tempLR;
            anzahlLR++;

        }
        LRfile.close();

    }
    else cout &lt;&lt; &quot;Unable to open file Luftraum&quot;;

    return LRListe;
}

int main()
{
    luftraum aktLR;
    vector&lt;luftraum&gt; Liste = LRFilelesen();
    aktLR=Liste.at(1);

    cout &lt;&lt; aktLR.Name &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2511462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511462</guid><dc:creator><![CDATA[Torsten Robitzki]]></dc:creator><pubDate>Thu, 13 Oct 2016 12:52:54 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Übergeben von komplexen Objekten aus Funktionen on Thu, 13 Oct 2016 13:07:01 GMT]]></title><description><![CDATA[<p>Vielen Dank!!<br />
Also wenn ich die Unterfunktion nicht auslagere dann Funktioniert es, also so:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &quot;EigenerHeader.hpp&quot;
#include &lt;sstream&gt;
#include &lt;fstream&gt;

using namespace std;

vector&lt;luftraum&gt; LRFilelesen()
{

return LRListe;
}

int main()
{

    vector&lt;luftraum&gt; Liste=LRFilelesen();
    cout &lt;&lt; Liste.size() &lt;&lt; endl;

    int i;
    luftraum t1;
    for(int i=0; i&lt;Liste.size();i++){
    cout &lt;&lt; Liste.size() &lt;&lt; endl;
    t1=Liste.at(i);
    t1.GetInfo();
    }
    return 0;
}
</code></pre>
<p>Gibt es aber auch eine möglichkeit das in der Main keine Unterfunktionen stehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511465</guid><dc:creator><![CDATA[net-attack]]></dc:creator><pubDate>Thu, 13 Oct 2016 13:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Übergeben von komplexen Objekten aus Funktionen on Thu, 13 Oct 2016 13:13:55 GMT]]></title><description><![CDATA[<p>net-attack schrieb:</p>
<blockquote>
<p>Gibt es aber auch eine möglichkeit das in der Main keine Unterfunktionen stehen?</p>
</blockquote>
<p>Äh, ja. Schreib sie doch einfach da hin, wo sie auch vorher stand. Das war nur ein Beispiel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511466</guid><dc:creator><![CDATA[Torsten Robitzki]]></dc:creator><pubDate>Thu, 13 Oct 2016 13:13:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Übergeben von komplexen Objekten aus Funktionen on Thu, 13 Oct 2016 15:34:11 GMT]]></title><description><![CDATA[<p>net-attack schrieb:</p>
<blockquote>
<p>Aber ich bekomme immer errors wenn ich &quot;void LRFilelesen()&quot; in &quot;vector&lt;luftraum&gt; LRFilelesen()&quot; einsetze...</p>
</blockquote>
<p>Es ist immer hilfreich, wenn du nicht nur sagst, dass du Fehler bekommst, sondern diese auch exakt so, wie sie der Compiler ausgibt, kopierst. Das macht es deutlich leichter, dir zu helfen. Denn eigentlich müsste die Ersetzung nämlich so funktionieren, d.h. vielleicht liegt der Fehler anderswo. (zumindest wenn du mit &quot;in...einsetze&quot; &quot;durch...ersetze&quot; meinst)</p>
<p>Ich würde noch ein paar allgemeine Dinge anmeckern: du schreibt von &quot;OwnHeader.hpp&quot;, aber im Code benutzt du &quot;EigenerHeader.hpp&quot;, das passt nicht zusammen. Nenne den Header besser genauso, wie die Klasse, du du darin implementierst, also in diesem Fall &quot;luftraum.hpp&quot;. Und du solltest du auf globale Variablen verzichten, insbesondere gehört die globale Variable <code>vector&lt;luftraum&gt; LRListe;</code> nicht in OwnHeader.cpp. Wie man darauf verzichten könnte, hat Torsten gut beschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511477</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Thu, 13 Oct 2016 15:34:11 GMT</pubDate></item></channel></rss>