<?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[absoluter Anfänger braucht Hilfe (BEZIEHUNGEN ZWISCHEN Klassen)]]></title><description><![CDATA[<p>Hallo, da unser Tutor nicht in der Lage ist Unterricht zu halten, sondern einfach stur PDFs austeilt, ohne dass sie jemand versteht, frage ich einmal hier um Hilfe.</p>
<p>Meine Idee: Es sollen 5(Mathe,Deutsch....) verschiedene Kurse geben und 10 Teilnehmer(Max,Tim,Kai...)geben.<br />
Jeder Teilnehmer soll wissen in welchem Kurs er ist( also sozusagen den string name jedes Teilnehmers).<br />
Die Kurse sollen nicht wissen wer ihre Teilnehmer sind.</p>
<p>Ich habe mich wirklich den ganzen Tag bemüht komme aber nun nicht weiter:<br />
Ich weiß nicht wie ich nun 10 Teilnehmer Objekte erstelle, sie den Kursen zuordenen kann und dardurch die Informationen bekommen kann, in welchem Kurs derjenige ist und wann sein Kurs endet.</p>
<p>Ich denke mal das meine Klasse Kurs und die Funktionsdefinitionen richtig sind,<br />
bei der Klasse Teilnehmer und der Funktionsdefinitionen bin ich mir sehr unsicher und es fehlt einiges.<br />
<div class="plugin-markdown"><input type="checkbox" id="checkbox60492" checked="true" /><label for="checkbox60492">zuordne.</label></div></p>
<p>Ich bitte um Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <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>
<p>Kurse.h</p>
<pre><code class="language-cpp">#include &lt;string&gt;
using namespace std;

class Kurse
{
private:
	string Bezeichnung;
	float Beginn;
	float Ende;
	string Tag;
public:
	Kurse();
	~Kurse();

	string get_Bezeichnung();
	float get_Beginn();
	float get_Ende();
	string get_Tag();

	void set_Bezeichnung(string name);
	void set_Beginn(float zeit);
	void set_Ende(float zeit);
	void set_Tag(string day);

};
</code></pre>
<p>Teilnehmer.h</p>
<pre><code class="language-cpp">#include &quot;Kurse.h&quot;
#include &lt;string&gt;
using namespace std;

class Teilnehmer
{
private: 
	string Name;
	Kurse *kurs[4];
public:
	Teilnehmer();
	~Teilnehmer();
	void set_Name(string name);
	string get_Name();

	void set_Kurs(Kurse *kurs);
	Kurse *get_Kurs();
};
</code></pre>
<p>Kurse.cpp</p>
<pre><code class="language-cpp">#include &lt;string&gt;
using namespace std;

class Kurse
{
private:
	string Bezeichnung;
	float Beginn;
	float Ende;
	string Tag;
public:
	Kurse();
	~Kurse();

	string get_Bezeichnung();
	float get_Beginn();
	float get_Ende();
	string get_Tag();

	void set_Bezeichnung(string name);
	void set_Beginn(float zeit);
	void set_Ende(float zeit);
	void set_Tag(string day);

};
</code></pre>
<p>Teilnehmer.cpp</p>
<pre><code class="language-cpp">#include &quot;Teilnehmer.h&quot;
#include &lt;iostream&gt;
using namespace std;

Teilnehmer::Teilnehmer()
{
}
Teilnehmer::~Teilnehmer()
{
}
void Teilnehmer::set_Name(string name)
{
	Name=name;
}
string Teilnehmer::get_Name()
{
	return Name;
}
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;Kurse.h&quot;
#include &quot;Teilnehmer.h&quot;
using namespace std;
int main()
{
	string bezeichnung;
	float zeit;

	Kurse Kursarray[5];
	for(int x=0;x&lt;=4;x++)
	{
		cout&lt;&lt;&quot;Geben sie für den &quot;&lt;&lt;x+1&lt;&lt;&quot; Kurs einen Namen ein: &quot;;
		cin&gt;&gt;bezeichnung;
		Kursarray[x].set_Bezeichnung(bezeichnung);
		cout&lt;&lt;endl;

	}
	for (int x=0;x&lt;=4;x++)
	{
		cout&lt;&lt;&quot;Geben sie für den Kurs: &quot;&lt;&lt;Kursarray[x].get_Bezeichnung()&lt;&lt;&quot; die Startzeit ein: &quot;;
		cin&gt;&gt;zeit;
		Kursarray[x].set_Beginn(zeit);
	}
	for (int x=0;x&lt;=4;x++)
	{
		cout&lt;&lt;&quot;Geben sie für den Kurs: &quot;&lt;&lt;Kursarray[x].get_Bezeichnung()&lt;&lt;&quot; die Schlusszeit ein: &quot;;
		cin&gt;&gt;zeit;
		Kursarray[x].set_Ende(zeit);
	}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/273227/absoluter-anfänger-braucht-hilfe-beziehungen-zwischen-klassen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 10:05:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273227.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Sep 2010 15:27:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to absoluter Anfänger braucht Hilfe (BEZIEHUNGEN ZWISCHEN Klassen) on Thu, 02 Sep 2010 15:27:33 GMT]]></title><description><![CDATA[<p>Hallo, da unser Tutor nicht in der Lage ist Unterricht zu halten, sondern einfach stur PDFs austeilt, ohne dass sie jemand versteht, frage ich einmal hier um Hilfe.</p>
<p>Meine Idee: Es sollen 5(Mathe,Deutsch....) verschiedene Kurse geben und 10 Teilnehmer(Max,Tim,Kai...)geben.<br />
Jeder Teilnehmer soll wissen in welchem Kurs er ist( also sozusagen den string name jedes Teilnehmers).<br />
Die Kurse sollen nicht wissen wer ihre Teilnehmer sind.</p>
<p>Ich habe mich wirklich den ganzen Tag bemüht komme aber nun nicht weiter:<br />
Ich weiß nicht wie ich nun 10 Teilnehmer Objekte erstelle, sie den Kursen zuordenen kann und dardurch die Informationen bekommen kann, in welchem Kurs derjenige ist und wann sein Kurs endet.</p>
<p>Ich denke mal das meine Klasse Kurs und die Funktionsdefinitionen richtig sind,<br />
bei der Klasse Teilnehmer und der Funktionsdefinitionen bin ich mir sehr unsicher und es fehlt einiges.<br />
<div class="plugin-markdown"><input type="checkbox" id="checkbox60492" checked="true" /><label for="checkbox60492">zuordne.</label></div></p>
<p>Ich bitte um Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <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>
<p>Kurse.h</p>
<pre><code class="language-cpp">#include &lt;string&gt;
using namespace std;

class Kurse
{
private:
	string Bezeichnung;
	float Beginn;
	float Ende;
	string Tag;
public:
	Kurse();
	~Kurse();

	string get_Bezeichnung();
	float get_Beginn();
	float get_Ende();
	string get_Tag();

	void set_Bezeichnung(string name);
	void set_Beginn(float zeit);
	void set_Ende(float zeit);
	void set_Tag(string day);

};
</code></pre>
<p>Teilnehmer.h</p>
<pre><code class="language-cpp">#include &quot;Kurse.h&quot;
#include &lt;string&gt;
using namespace std;

class Teilnehmer
{
private: 
	string Name;
	Kurse *kurs[4];
public:
	Teilnehmer();
	~Teilnehmer();
	void set_Name(string name);
	string get_Name();

	void set_Kurs(Kurse *kurs);
	Kurse *get_Kurs();
};
</code></pre>
<p>Kurse.cpp</p>
<pre><code class="language-cpp">#include &lt;string&gt;
using namespace std;

class Kurse
{
private:
	string Bezeichnung;
	float Beginn;
	float Ende;
	string Tag;
public:
	Kurse();
	~Kurse();

	string get_Bezeichnung();
	float get_Beginn();
	float get_Ende();
	string get_Tag();

	void set_Bezeichnung(string name);
	void set_Beginn(float zeit);
	void set_Ende(float zeit);
	void set_Tag(string day);

};
</code></pre>
<p>Teilnehmer.cpp</p>
<pre><code class="language-cpp">#include &quot;Teilnehmer.h&quot;
#include &lt;iostream&gt;
using namespace std;

Teilnehmer::Teilnehmer()
{
}
Teilnehmer::~Teilnehmer()
{
}
void Teilnehmer::set_Name(string name)
{
	Name=name;
}
string Teilnehmer::get_Name()
{
	return Name;
}
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;Kurse.h&quot;
#include &quot;Teilnehmer.h&quot;
using namespace std;
int main()
{
	string bezeichnung;
	float zeit;

	Kurse Kursarray[5];
	for(int x=0;x&lt;=4;x++)
	{
		cout&lt;&lt;&quot;Geben sie für den &quot;&lt;&lt;x+1&lt;&lt;&quot; Kurs einen Namen ein: &quot;;
		cin&gt;&gt;bezeichnung;
		Kursarray[x].set_Bezeichnung(bezeichnung);
		cout&lt;&lt;endl;

	}
	for (int x=0;x&lt;=4;x++)
	{
		cout&lt;&lt;&quot;Geben sie für den Kurs: &quot;&lt;&lt;Kursarray[x].get_Bezeichnung()&lt;&lt;&quot; die Startzeit ein: &quot;;
		cin&gt;&gt;zeit;
		Kursarray[x].set_Beginn(zeit);
	}
	for (int x=0;x&lt;=4;x++)
	{
		cout&lt;&lt;&quot;Geben sie für den Kurs: &quot;&lt;&lt;Kursarray[x].get_Bezeichnung()&lt;&lt;&quot; die Schlusszeit ein: &quot;;
		cin&gt;&gt;zeit;
		Kursarray[x].set_Ende(zeit);
	}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1947401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947401</guid><dc:creator><![CDATA[Anfaenger111]]></dc:creator><pubDate>Thu, 02 Sep 2010 15:27:33 GMT</pubDate></item><item><title><![CDATA[Reply to absoluter Anfänger braucht Hilfe (BEZIEHUNGEN ZWISCHEN Klassen) on Thu, 02 Sep 2010 15:43:05 GMT]]></title><description><![CDATA[<p><a href="http://www.megaupload.com/?d=HA0HE58T" rel="nofollow">http://www.megaupload.com/?d=HA0HE58T</a></p>
<p>hier auch der source code als vc++ projekt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947409</guid><dc:creator><![CDATA[Anfaenger111]]></dc:creator><pubDate>Thu, 02 Sep 2010 15:43:05 GMT</pubDate></item><item><title><![CDATA[Reply to absoluter Anfänger braucht Hilfe (BEZIEHUNGEN ZWISCHEN Klassen) on Thu, 02 Sep 2010 17:46:59 GMT]]></title><description><![CDATA[<p>Anfaenger111 schrieb:</p>
<blockquote>
<p>Ich habe mich wirklich den ganzen Tag bemüht komme aber nun nicht weiter:<br />
Ich weiß nicht wie ich nun 10 Teilnehmer Objekte erstelle, sie den Kursen zuordenen kann und dardurch die Informationen bekommen kann, in welchem Kurs derjenige ist und wann sein Kurs endet.</p>
</blockquote>
<p>Ich würde den Teilnehmer anders designen:</p>
<pre><code class="language-cpp">class Teilnehmer
{
private:
    string Name;
    std::vector&lt;Kurse*&gt; kurs;  // Wozu auf 4 festlegen? Außerdem ist vector komfortabler
public:
    Teilnehmer(std::string Name);  // Gibt es Teilnehmer ohne Namen? Wohl nein, also ab in den Konstruktor damit
    // ~Teilnehmer();  Wozu brauchst du einen Destruktor?
    // void set_Name(string name); Kann ein Teilnehmer seinen Namen ändern? Wohl kaum, also raus damit
    string get_Name();

    void set_Kurs(Kurse *kurs);
    // Kurse *get_Kurs(); Was soll hier zurückgegeben werden? Vermutlich doch alle Kurse, also:
    vector&lt;Kurse*&gt; get_Kurs();
};
</code></pre>
<p>Und das implementierst du dann. Es wäre mir noch ein Streitthema, ob kurs nun Zeiger oder konkrete Objekte enthalten soll. Der Fall mit den Zeigern trifft meiner Meinung nach wohl eher die Realität, kommt aber auf dein konkretes Modell an, was du genau möchtest.</p>
<p>Noch ein paar Bemerkungen:<br />
- Objektorientiertes Design ist dir wohl neu? Mach nicht alles nach was du siehst, ohne es zu verstehen (hier: Konstruktor, Destruktor, Getter, Setter).</p>
<p>- Deine Namen sind schrecklich. Warum heißt die Klasse Kurse, obwohl es nur einen Kurs modelliert? Dafür hat Teilnehmer ein Member namens kurs, welches mehrere Kurse enthält. Total verwirrend.</p>
<p>Mit den obigen Tipps würde ich auch noch einmal die Klasse Kurse überarbeiten (den Namen lasse ich jetzt einmal unverändert, obwohl schlecht gewählt), zum Beispiel so:</p>
<pre><code class="language-cpp">class Kurse
{
private:
    string Bezeichnung;
//    float Beginn;   Float für Zeit?
//    float Ende;
//    string Tag;     Und ein Tag ist eine Zeichenkette?
//                    Wie wäre es damit:
    Datumstyp Beginn;
    Datumstyp Ende; // Datumstyp ist eine noch zu modellierende Klasse
                    // Alternatives Modell: Beginn und Dauer
public:
    Kurse(std::string Bezeichnung, Datumstyp Beginn, Datumstyp Ende); // Siehe oben
    // ~Kurse();  Siehe oben

    string get_Bezeichnung();
    Datumstyp get_Beginn();
    Datumstyp get_Ende();

    void set_Bezeichnung(string name);  // Weiß jetzt nicht ob das Sinn macht die Bezeichnung ändern zu können, kommt auf dein genaues Modell an
    void set_Beginn(Datumstyp zeit);    // Man sollte Kurse aber zetilich verschieben können
    void set_Ende(Datumstyp zeit);      // Wobei hierbei das Modell Beginn+Dauer von Vorteil wäre
};
</code></pre>
<p>P.S.: <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Und <strong>niemals</strong> <code>using namespace</code> in Headern benutzen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947472</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 02 Sep 2010 17:46:59 GMT</pubDate></item><item><title><![CDATA[Reply to absoluter Anfänger braucht Hilfe (BEZIEHUNGEN ZWISCHEN Klassen) on Thu, 02 Sep 2010 18:10:22 GMT]]></title><description><![CDATA[<p>Hallo, danke für die Tipps!<br />
Du hast recht, ist alles sehr verwirrend was ich da treibe,<br />
ich bin jetzt auch dabei nochmal neu anzufangen und lese mich grad<br />
im Erlenkötter C++ Buch ein, da die Pdfs mich nur verwirren und ich wohl nur die hälfte verstanden habe.</p>
<p>Eine neue Frage:<br />
wenn ich get_Methoden baue, ist es dann gut sie inline zu schreiben oder ist das ein schlechter Programmierstil?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947482</guid><dc:creator><![CDATA[Anfaenger111]]></dc:creator><pubDate>Thu, 02 Sep 2010 18:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to absoluter Anfänger braucht Hilfe (BEZIEHUNGEN ZWISCHEN Klassen) on Thu, 02 Sep 2010 18:22:04 GMT]]></title><description><![CDATA[<p>wer &quot;using namespace&quot; in .h's packt, kommt in die Hölle <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>Wenn deine Konstruktoren/Destruktioren nichts tun, brauchst du die nicht selber schreiben.</p>
<p>Wenn du STL Container nutzt, spaarst du dir ne Menge Verwaltung.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;iostream&gt;

class Kurs
{
public:
    Kurs(std::string n, std::string t, float v, float b) : name(n), tag(t), von(v), bis(b)
    { if (bis &lt; von) std::swap(von,bis); }

    std::string Name() { return name;}

private:
    std::string name;
    std::string tag;
    float von;
    float bis;
};

class Student
{
public:
    Student(std::string n) : name(n) {};

    bool signIn(Kurs &amp;k)
    {
        std::vector&lt;Kurs*&gt;::iterator it;
        it = kurse.begin();
        while(it != kurse.end())
        {
            if (*it == &amp;k)
            {
                return false;
                std::cout &lt;&lt; name &lt;&lt; &quot; ist schon in &quot; &lt;&lt; k.Name() &lt;&lt; std::endl;
             }
            ++it;
        }

        std::cout &lt;&lt; name &lt;&lt; &quot; meldet sich an für &quot; &lt;&lt; k.Name() &lt;&lt; std::endl;
        kurse.push_back(&amp;k);
        return true;
    }

    bool signOut(Kurs &amp;k)
    {
        std::vector&lt;Kurs*&gt;::iterator it;
        it = kurse.begin();
        while(it != kurse.end())
        {
            if (*it == &amp;k)
            {
                std::cout &lt;&lt; name &lt;&lt; &quot; meldet sich ab von &quot; &lt;&lt; k.Name() &lt;&lt; std::endl;
                kurse.erase(it);
                return true;
            }
            ++it;
        }

        std::cout &lt;&lt; name &lt;&lt; &quot; ist garnicht in &quot; &lt;&lt; k.Name() &lt;&lt; std::endl;
        return false;
    }

private:
    std::string name;
    std::vector&lt;Kurs*&gt; kurse;
};

int main()
{
    Kurs bio(&quot;Bio&quot;,&quot;MoMiFr&quot;,9,12);
    Kurs mathe(&quot;Mathe&quot;,&quot;MoMiFr&quot;,5,9);
    Kurs cpp(&quot;C++&quot;,&quot;tgl.&quot;,12,16);

    Student fleissig(&quot;nichIch&quot;);
    Student faul(&quot;auchNichIch&quot;);

    fleissig.signIn(bio);
    fleissig.signIn(bio);
    fleissig.signIn(mathe);
    fleissig.signIn(mathe);
    fleissig.signIn(cpp);
    fleissig.signIn(cpp);

    faul.signIn(bio);
    faul.signIn(mathe);
    faul.signIn(cpp);

    faul.signOut(bio);
    faul.signOut(mathe);
    faul.signOut(cpp);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1947488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947488</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Thu, 02 Sep 2010 18:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to absoluter Anfänger braucht Hilfe (BEZIEHUNGEN ZWISCHEN Klassen) on Thu, 02 Sep 2010 18:35:58 GMT]]></title><description><![CDATA[<p>Anfaenger111 schrieb:</p>
<blockquote>
<p>Eine neue Frage: wenn ich get_Methoden baue, ist es dann gut sie inline zu schreiben oder ist das ein schlechter Programmierstil?</p>
</blockquote>
<p>Ich halte das mit den Inlines so: Ich denke das macht der Compiler sinniger als ich <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="😉"
    /> Was die Methodenbennenung angeht gibts im Forum immer wieder Threads in denen alle Heiß ihre Version verteidigen <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="😉"
    /> meiner Meinung nach ists nur wichtig konsistent zu bleiben.</p>
<p>Ich machs so:</p>
<pre><code class="language-cpp">class A {
public:
    A() : mMemberName(-4) {}
    void memberName(int s) { mMemberName = s;} // setter
    int memberName() { return mMemberName; }   // getter

    int memberNAME(int *s=0) { if (!s) return mMemberName; mMemberName = *s; return mMemberName;} // mach ich nie, gibts aber einige
private:
 int mMemberName;
};

int main()
{
    A hallohi;
    std::cout &lt;&lt; hallohi.memberName() &lt;&lt; std::endl; // -4
    hallohi.memberName(8);

    int karl = 20;
    std::cout &lt;&lt; hallohi.memberNAME() &lt;&lt; std::endl; // 8
    std::cout &lt;&lt; hallohi.memberNAME(&amp;karl) &lt;&lt; std::endl; // 20
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1947493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947493</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Thu, 02 Sep 2010 18:35:58 GMT</pubDate></item><item><title><![CDATA[Reply to absoluter Anfänger braucht Hilfe (BEZIEHUNGEN ZWISCHEN Klassen) on Thu, 02 Sep 2010 19:19:34 GMT]]></title><description><![CDATA[<p>padreigh schrieb:</p>
<blockquote>
<p>Anfaenger111 schrieb:</p>
<blockquote>
<p>Eine neue Frage: wenn ich get_Methoden baue, ist es dann gut sie inline zu schreiben oder ist das ein schlechter Programmierstil?</p>
</blockquote>
<p>Ich halte das mit den Inlines so: Ich denke das macht der Compiler sinniger als ich <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="😉"
    /> Was die Methodenbennenung angeht gibts im Forum immer wieder Threads in denen alle Heiß ihre Version verteidigen <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="😉"
    /> meiner Meinung nach ists nur wichtig konsistent zu bleiben.</p>
</blockquote>
<p>Ja, aber es schadet nicht, dem Compiler etwas auf die Sprünge zu helfen. Und gerade bei häufig benutzten Gettern hilft Inlining sehr viel. Damit meine ich nicht, die Methoden in einer cpp-Datei inline zu definieren. Stattdessen sollte man sie gleich in der Klassendeklaration definieren (was gleichbedeutend mit inline ist). Denn Funktionen die in anderen Übersetzungseinheiten definiert sind können nur die cleversten Compiler/Linker inlinen, daher ist es gut die Funktionsdefinition im Header zu haben. Und da ein Getter meistens nur ein einzelner Ausdruck ist, wird die Klassendeklaration dadurch auch nicht unübersichtlich. Wenn es deutlich mehr als eine Zeile Code für den Getter ist, sollte er vermutlich ohnehin nicht inline sein.<br />
Das gilt natürlich gleichermaßen für alle anderen Funktionseinzeiler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1947516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1947516</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 02 Sep 2010 19:19:34 GMT</pubDate></item></channel></rss>