<?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[Programmcode auslagen klappt nicht]]></title><description><![CDATA[<p>Hallo,<br />
ich habe mir eben folgendes Program geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;
class Auto {
	private:
 		string kennzeichen;
		int ps;
    public:
        Auto (string s = &quot;&quot;, int i = 0){
            kennzeichen = s;
            ps = i;
        }
        void setKennzeichen(string s) {
            kennzeichen = s;
        }
        string getKennzeichen() {
            return kennzeichen;
        }
        void setPs(int i) {
            ps = i;
        }
        int getPs() {
            return ps;
        }
};
int main() {
	Auto meineKarre;
	meineKarre.setKennzeichen(&quot;AC-AB 6666&quot;);
	meineKarre.setPs(6666);

	cout &lt;&lt; meineKarre.getKennzeichen() &lt;&lt; endl;
	cout &lt;&lt; meineKarre.getPs() &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Nun möchte ich das Programm modular gestalten.</p>
<p>Es sieht nun folgendermaßen aus:<br />
header.h:</p>
<pre><code class="language-cpp">#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED

class Auto {

	private:

 		string kennzeichen;
		int ps;

    public:

        Auto (string s = &quot;&quot;, int i = 0);
        ~Auto();

        void setKennzeichen(string s);
        string getKennzeichen();
        void setPs(int i);
        int getPs();

};

#endif // HEADER_H_INCLUDED
</code></pre>
<p>klasseKlasse.cpp:</p>
<pre><code class="language-cpp">int Auto::Auto(string s, int i) {
    kennzeichen = s;
    ps = i;
}

Auto::~Auto();

void Auto::setKennzeichen(string s) {
    kennzeichen = s;
}

string Auto::getKennzeichen() {
    return kennzeichen;
}

void Auto::setPs(int i) {
    ps = i;
}

int Auto::getPs() {
    return ps;
}
</code></pre>
<p>main.cpp:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;header.h&quot;
#include &quot;klasseKlasse.cpp&quot;

using namespace std;

int main() {

	Auto meineKarre;
	meineKarre.setKennzeichen(&quot;AC-AB 6666&quot;);
	meineKarre.setPs(6666);

	cout &lt;&lt; meineKarre.getKennzeichen() &lt;&lt; endl;
	cout &lt;&lt; meineKarre.getPs() &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Es werden jede Menge Fehler ausgegeben,<br />
jeddoch hauptsächlich Fehler bzgl. der Strings.<br />
Wenn ich in die Header-Datei die string include, ändert das aber nichts.</p>
<p>Wie läuft das include bei c++ eigentlich ab?<br />
So wie bei Java?</p>
<p>Und was mache ich falsch <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293547/programmcode-auslagen-klappt-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 05:43:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293547.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Oct 2011 15:02:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Wed, 05 Oct 2011 15:03:03 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe mir eben folgendes Program geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;
class Auto {
	private:
 		string kennzeichen;
		int ps;
    public:
        Auto (string s = &quot;&quot;, int i = 0){
            kennzeichen = s;
            ps = i;
        }
        void setKennzeichen(string s) {
            kennzeichen = s;
        }
        string getKennzeichen() {
            return kennzeichen;
        }
        void setPs(int i) {
            ps = i;
        }
        int getPs() {
            return ps;
        }
};
int main() {
	Auto meineKarre;
	meineKarre.setKennzeichen(&quot;AC-AB 6666&quot;);
	meineKarre.setPs(6666);

	cout &lt;&lt; meineKarre.getKennzeichen() &lt;&lt; endl;
	cout &lt;&lt; meineKarre.getPs() &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Nun möchte ich das Programm modular gestalten.</p>
<p>Es sieht nun folgendermaßen aus:<br />
header.h:</p>
<pre><code class="language-cpp">#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED

class Auto {

	private:

 		string kennzeichen;
		int ps;

    public:

        Auto (string s = &quot;&quot;, int i = 0);
        ~Auto();

        void setKennzeichen(string s);
        string getKennzeichen();
        void setPs(int i);
        int getPs();

};

#endif // HEADER_H_INCLUDED
</code></pre>
<p>klasseKlasse.cpp:</p>
<pre><code class="language-cpp">int Auto::Auto(string s, int i) {
    kennzeichen = s;
    ps = i;
}

Auto::~Auto();

void Auto::setKennzeichen(string s) {
    kennzeichen = s;
}

string Auto::getKennzeichen() {
    return kennzeichen;
}

void Auto::setPs(int i) {
    ps = i;
}

int Auto::getPs() {
    return ps;
}
</code></pre>
<p>main.cpp:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;header.h&quot;
#include &quot;klasseKlasse.cpp&quot;

using namespace std;

int main() {

	Auto meineKarre;
	meineKarre.setKennzeichen(&quot;AC-AB 6666&quot;);
	meineKarre.setPs(6666);

	cout &lt;&lt; meineKarre.getKennzeichen() &lt;&lt; endl;
	cout &lt;&lt; meineKarre.getPs() &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Es werden jede Menge Fehler ausgegeben,<br />
jeddoch hauptsächlich Fehler bzgl. der Strings.<br />
Wenn ich in die Header-Datei die string include, ändert das aber nichts.</p>
<p>Wie läuft das include bei c++ eigentlich ab?<br />
So wie bei Java?</p>
<p>Und was mache ich falsch <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2127609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2127609</guid><dc:creator><![CDATA[Fishmasta]]></dc:creator><pubDate>Wed, 05 Oct 2011 15:03:03 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Wed, 05 Oct 2011 15:05:08 GMT]]></title><description><![CDATA[<p>include ist reine textersetzung, dort wo du include&lt;xXx&gt; schreibst wird der gesamte dateiinhalt von deiner xXx datei reingeschrieben, mehr ist das nicht.</p>
<p>was dir wohl eher fehlt ist ein #include &lt;string&gt; in deine header datei</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2127610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2127610</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 05 Oct 2011 15:05:08 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Wed, 05 Oct 2011 15:10:10 GMT]]></title><description><![CDATA[<p>hilft leider nichts</p>
<p>header.h:</p>
<pre><code class="language-cpp">#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED

#include &lt;string&gt;

class Auto {

	private:

 		string kennzeichen;
		int ps;

    public:

        Auto (string s = &quot;&quot;, int i = 0);
        ~Auto();

        void setKennzeichen(string s);
        string getKennzeichen();
        void setPs(int i);
        int getPs();

};

#endif // HEADER_H_INCLUDED
</code></pre>
<p>Fehler:</p>
<pre><code>string' does not name a type
</code></pre>
<p>edith sagt:<br />
wenn es reine textersetzung ist, dann dürfte es doch keinen Unterschied machen, ob ich die string in der main.cpp oder in der header.h includiere, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2127611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2127611</guid><dc:creator><![CDATA[Fishmasta]]></dc:creator><pubDate>Wed, 05 Oct 2011 15:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Wed, 05 Oct 2011 15:09:10 GMT]]></title><description><![CDATA[<p>Nein, nicht gleich wie bei Java. Ist ein wenig komplizierter.</p>
<p>Wenn du eine Klasse benutzt (aka Funktionen aufrufst, Objekt erstellst oder in eine andere Klasse einbettest), dann muss die Definition bekannt sein. Sprich du musst den Header vorher inlcude.</p>
<p>in header.h benutzt du std::string. Also musst du vorher &lt;string&gt; includen. Das std:: musst du dann bei der Benutzung auch angeben (mach kein using namespace in den Header!).</p>
<p>in klasseKlasse.cpp definierst du die Memberfunktionen von Auto. Also muss da die Definition der Klasse bekannt sein, also muss da ein include &quot;header.h&quot; rein.</p>
<p>In main.cpp benutzt du direkt lediglich Auto, also musst du da nur include &quot;header.h&quot; rein usw.</p>
<p>Du solltest mal ein Anfängerbuch zu C++ lesen. Auch wenn du bereits programmieren kannst ist es durchaus notwendig, weil einige Sachen anders laufen, als in Java.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2127612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2127612</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 05 Oct 2011 15:09:10 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Wed, 05 Oct 2011 15:25:53 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int Auto::Auto(string s, int i) {
    kennzeichen = s;
    ps = i;
}
</code></pre>
<p>Kostruktor hat kein Rückgabewert. Nimm das int weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2127616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2127616</guid><dc:creator><![CDATA[MiP]]></dc:creator><pubDate>Wed, 05 Oct 2011 15:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Wed, 05 Oct 2011 15:35:27 GMT]]></title><description><![CDATA[<p>MiP schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int Auto::Auto(string s, int i) {
    kennzeichen = s;
    ps = i;
}
</code></pre>
<p>Kostruktor hat kein Rückgabewert. Nimm das int weg.</p>
</blockquote>
<p>Japp, hab ich auch schon gesehen,<br />
muss beim formatieren iwie reingerutscht sein. sry.</p>
<p>Habe den Code jetzt nochmal überarbeitet.<br />
Bekomme nun 2 neue Fehler.</p>
<p>header.h:</p>
<pre><code class="language-cpp">#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED

#include &lt;string&gt;

class Auto {

	private:

 		std::string kennzeichen;
		int ps;

    public:

        Auto (std::string s = &quot;&quot;, int i = 0);
        ~Auto();

        void setKennzeichen(std::string s);
        std::string getKennzeichen();
        void setPs(int i);
        int getPs();

};

#endif // HEADER_H_INCLUDED
</code></pre>
<p>klasseKlasse.cpp:</p>
<ol>
<li>
<p>Wenn der Destruktor nicht auskommentiert wird, bekomme ich die Fehlermeldung:<br />
declaration of 'Auto::~Auto()' outside of class is not definition</p>
</li>
<li>
<p>folgender Fehler in Zeile 3:<br />
expected ')' before 's'</p>
</li>
</ol>
<pre><code class="language-cpp">#include &quot;header.h&quot;

Auto(std::string s, int i) {
    kennzeichen = s;
    ps = i;
}

//Auto::~Auto();
//Wenn ich den Destruktor hier drin lasse kommt folgende Fehlermeldung:
//declaration of 'Auto::~Auto()' outsie of class is not definition

void Auto::setKennzeichen(std::string s) {
    kennzeichen = s;
}

std::string Auto::getKennzeichen() {
    return kennzeichen;
}

void Auto::setPs(int i) {
    ps = i;
}

int Auto::getPs() {
    return ps;
}
</code></pre>
<p>main.cpp:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;header.h&quot;

using namespace std;

int main() {

	Auto meineKarre;
	meineKarre.setKennzeichen(&quot;AC-AB 6666&quot;);
	meineKarre.setPs(6666);

	cout &lt;&lt; meineKarre.getKennzeichen() &lt;&lt; endl;
	cout &lt;&lt; meineKarre.getPs() &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>Den Fehler in Zeile 3 kapier ich garnicht <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="😕"
    /><br />
Gehört der Destruktor nur ins header-file?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2127621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2127621</guid><dc:creator><![CDATA[Fishmasta]]></dc:creator><pubDate>Wed, 05 Oct 2011 15:35:27 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Wed, 05 Oct 2011 15:49:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn du den Destruktor außerhalb angeben willst, dann mußt du auch einen Funktionsrumpf (Body) angeben:</p>
<pre><code class="language-cpp">Auto::~Auto()
{
}
</code></pre>
<p>Jedoch benötigt deine Klasse gar keinen eigenen Destruktor (der vom Compiler generierte Standard-Destruktor reicht völlig aus), also laß ihn einfach weg.<br />
Stichwort dazu: <a href="http://de.wikipedia.org/wiki/Regel_der_Gro%C3%9Fen_Drei" rel="nofollow">Regel der großen Drei</a> (Kopierkonstruktor, Zuweisungsoperator, Destruktor) - entweder alle definieren oder aber keinen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2127628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2127628</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 05 Oct 2011 15:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Wed, 05 Oct 2011 15:50:27 GMT]]></title><description><![CDATA[<p>// gelöscht (aus Versehen doppelt gepostet)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2127632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2127632</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 05 Oct 2011 15:50:27 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Wed, 05 Oct 2011 16:00:22 GMT]]></title><description><![CDATA[<p>Fishmasta schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &quot;header.h&quot;

Auto(std::string s, int i) {
    kennzeichen = s;
    ps = i;
}
</code></pre>
<p>Den Fehler in Zeile 3 kapier ich garnicht <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="😕"
    /></p>
</blockquote>
<p>Da stand vorher<br />
<code>int Auto::Auto(...</code><br />
und statt nur &quot;int&quot; wegzunehmen, fehlt jetzt auch das &quot;Auto::&quot;</p>
<p>Fishmasta schrieb:</p>
<blockquote>
<p>Gehört der Destruktor nur ins header-file?</p>
</blockquote>
<p>Diese Woche ist wohl die &quot;Ich-habe-noch-nie-etwas-von-der-<a href="http://en.wikipedia.org/wiki/One_Definition_Rule" rel="nofollow">ODR</a>-gehört&quot;-Woche, was?</p>
<p>Wenn ich mich frägte, was wo definiert und deklariert werden soll, dann würde ich mir ein schlaues Buch schnappen und den Kram nachlesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2127639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2127639</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 05 Oct 2011 16:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to Programmcode auslagen klappt nicht on Thu, 06 Oct 2011 19:29:31 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/p1993089#1993089" rel="nofollow">http://www.c-plusplus.net/forum/p1993089#1993089</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2128198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2128198</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Thu, 06 Oct 2011 19:29:31 GMT</pubDate></item></channel></rss>