<?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[Überladene Funktionen bei Vererbung]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Ich hab ein riesen Problem, ich soll diese Aufgabe lösen: <a href="http://u20563.hs-harz.de/Aufgabe3.pdf" rel="nofollow">http://u20563.hs-harz.de/Aufgabe3.pdf</a></p>
<p>So weit so gut, den Sekretaer hab ich komplett fertig, nur die Chefin macht mir Probleme, irgendwas stimmt mit den überladenen Funktionen nicht, aber ich hab keinen Plan wie ich es anders machen kann. Hoffe ihr könnt mir helfen.</p>
<p>Header Datei:</p>
<pre><code>class Chefin : protected Mitarbeiter {

	private:

		const Sekretaer* _sekretaer;
		Mitarbeiter _mitarbeiter;
		char bereich[laenge+1]; //Deklaration des Bereichs als Char Feld

	public:

		// Standartkonstruktor
		Chefin();

		// Konstruktor
		Chefin(const Sekretaer&amp; sekretaer, char* bereich = &quot; &quot;); 

		void sekretaerAendern(Sekretaer* neuerSekretaer); //Sekretaer aendern

};
#endif
</code></pre>
<p>CPP Datei:</p>
<pre><code>//Standartkonstruktor
Chefin::Chefin(){}

//Konstruktor
Chefin::Chefin(const Sekretaer&amp; sekretaer, char* bereich) : Mitarbeiter(_adresse, personalNr, gehalt) {

	bereichAendern(bereich); //neuen Bereich zuweisen
	_sekretaer = &amp;sekretaer;

}

void Chefin::sekretaerAendern(Sekretaer* neuerSekretaer) {

	_sekretaer = neuerSekretaer;
}
</code></pre>
<p>Folgende Fehlermeldungen gibt er mir bei dieser Testdatei aus (Fehlerpositionen Fett hervorgehoben):</p>
<pre><code>int main(void)
{
	Sekretaer
		sekr1(Adresse(&quot;Stein&quot;, 38855L, &quot;Darlingerode&quot;), 7, 3000, &quot;Englisch&quot;);
	Chefin chefin1(sekr1, Adresse(&quot;Baur&quot;, 38855L, &quot;Reddeber&quot;),17, 6700, &quot;Vertrieb&quot;);
	chefin1.sekretaerAendern(sekr2);
        chefin1.sekretaerAendern();
	chefin1.sekretaerAendern(sekr1);

	Chefin chefin2(Adresse(&quot;Mueller&quot;, 38640L, &quot;Goslar&quot;),
								 21, 9500, &quot;EDV&quot;);

}
</code></pre>
<p>c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(26) : error C2661: 'Sekretaer::Sekretaer': Keine überladene Funktion akzeptiert 4 Argumente<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(34) : error C2661: 'Chefin::Chefin': Keine überladene Funktion akzeptiert 5 Argumente<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(43) : error C2664: 'Chefin::sekretaerAendern': Konvertierung des Parameters 1 von 'Sekretaer' in 'Sekretaer *' nicht möglich<br />
Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(47) : error C2660: 'Chefin::sekretaerAendern': Funktion akzeptiert keine 0 Argumente<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(49) : error C2664: 'Chefin::sekretaerAendern': Konvertierung des Parameters 1 von 'Sekretaer' in 'Sekretaer *' nicht möglich<br />
Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(56) : error C2661: 'Chefin::Chefin': Keine überladene Funktion akzeptiert 4 Argumente</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186294/überladene-funktionen-bei-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 07:57:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186294.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Jul 2007 21:42:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladene Funktionen bei Vererbung on Fri, 06 Jul 2007 22:05:43 GMT]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Ich hab ein riesen Problem, ich soll diese Aufgabe lösen: <a href="http://u20563.hs-harz.de/Aufgabe3.pdf" rel="nofollow">http://u20563.hs-harz.de/Aufgabe3.pdf</a></p>
<p>So weit so gut, den Sekretaer hab ich komplett fertig, nur die Chefin macht mir Probleme, irgendwas stimmt mit den überladenen Funktionen nicht, aber ich hab keinen Plan wie ich es anders machen kann. Hoffe ihr könnt mir helfen.</p>
<p>Header Datei:</p>
<pre><code>class Chefin : protected Mitarbeiter {

	private:

		const Sekretaer* _sekretaer;
		Mitarbeiter _mitarbeiter;
		char bereich[laenge+1]; //Deklaration des Bereichs als Char Feld

	public:

		// Standartkonstruktor
		Chefin();

		// Konstruktor
		Chefin(const Sekretaer&amp; sekretaer, char* bereich = &quot; &quot;); 

		void sekretaerAendern(Sekretaer* neuerSekretaer); //Sekretaer aendern

};
#endif
</code></pre>
<p>CPP Datei:</p>
<pre><code>//Standartkonstruktor
Chefin::Chefin(){}

//Konstruktor
Chefin::Chefin(const Sekretaer&amp; sekretaer, char* bereich) : Mitarbeiter(_adresse, personalNr, gehalt) {

	bereichAendern(bereich); //neuen Bereich zuweisen
	_sekretaer = &amp;sekretaer;

}

void Chefin::sekretaerAendern(Sekretaer* neuerSekretaer) {

	_sekretaer = neuerSekretaer;
}
</code></pre>
<p>Folgende Fehlermeldungen gibt er mir bei dieser Testdatei aus (Fehlerpositionen Fett hervorgehoben):</p>
<pre><code>int main(void)
{
	Sekretaer
		sekr1(Adresse(&quot;Stein&quot;, 38855L, &quot;Darlingerode&quot;), 7, 3000, &quot;Englisch&quot;);
	Chefin chefin1(sekr1, Adresse(&quot;Baur&quot;, 38855L, &quot;Reddeber&quot;),17, 6700, &quot;Vertrieb&quot;);
	chefin1.sekretaerAendern(sekr2);
        chefin1.sekretaerAendern();
	chefin1.sekretaerAendern(sekr1);

	Chefin chefin2(Adresse(&quot;Mueller&quot;, 38640L, &quot;Goslar&quot;),
								 21, 9500, &quot;EDV&quot;);

}
</code></pre>
<p>c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(26) : error C2661: 'Sekretaer::Sekretaer': Keine überladene Funktion akzeptiert 4 Argumente<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(34) : error C2661: 'Chefin::Chefin': Keine überladene Funktion akzeptiert 5 Argumente<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(43) : error C2664: 'Chefin::sekretaerAendern': Konvertierung des Parameters 1 von 'Sekretaer' in 'Sekretaer *' nicht möglich<br />
Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(47) : error C2660: 'Chefin::sekretaerAendern': Funktion akzeptiert keine 0 Argumente<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(49) : error C2664: 'Chefin::sekretaerAendern': Konvertierung des Parameters 1 von 'Sekretaer' in 'Sekretaer *' nicht möglich<br />
Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden<br />
c:\dokumente und einstellungen\juliane\eigene dateien\oop\projekt-firma\src\tsc.cpp(56) : error C2661: 'Chefin::Chefin': Keine überladene Funktion akzeptiert 4 Argumente</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1320004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1320004</guid><dc:creator><![CDATA[MilchMaedchen]]></dc:creator><pubDate>Fri, 06 Jul 2007 22:05:43 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene Funktionen bei Vererbung on Fri, 06 Jul 2007 21:57:48 GMT]]></title><description><![CDATA[<p>Hi,<br />
grenze bitte den Code in die Fehlerstellen und die fehler-relevanten Stellen ein.<br />
Das erspart manchen Leuten ein paar Gehirnzellen <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/1320015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1320015</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 06 Jul 2007 21:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene Funktionen bei Vererbung on Fri, 06 Jul 2007 22:05:11 GMT]]></title><description><![CDATA[<p>Beim drüberfliegen ist mir schonmal das aufgefallen, denke mal hast du an anderen Stellen auch falsch:</p>
<pre><code class="language-cpp">//Konstruktor
Chefin::Chefin(const Sekretaer&amp; sekretaer, char* bereich) : Mitarbeiter(_adresse, personalNr, gehalt) {

    bereichAendern(bereich); //neuen Bereich zuweisen
    _sekretaer = &amp;sekretaer;

}
</code></pre>
<p>Du musst das so machen:</p>
<pre><code class="language-cpp">class A {
   public:
          A(int z,bool b) { }
};

class B : public A {
   public:
          B(int lu,string a,int z, bool b):A(z,b) { }
};
</code></pre>
<p>D.h., die Argumenten die du an deine Basisklasse übergeben mächstest, müssen auch als Parameter in der Parameterliste des Konstruktors der abgeleiteten Klasse stehen.</p>
<p>B nimmt sie auf und gibt sie an A's Konstruktor weiter <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>Und C/C++ Tags benutzen <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="😉"
    /> ( direkt neben Code )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1320019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1320019</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 06 Jul 2007 22:05:11 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene Funktionen bei Vererbung on Fri, 06 Jul 2007 22:45:11 GMT]]></title><description><![CDATA[<p>Also ich habe den Konstruktor in dem Header jetzt geändert in:</p>
<pre><code class="language-cpp">// Konstruktor
Chefin(const Sekretaer&amp; sekretaer, char* bereich = &quot; &quot;) : Mitarbeiter(Adresse(),personalNr,gehalt){}
</code></pre>
<p>Aber ich muss jetzt doch den Konstruktor in der Cpp doch auch noch ändern, weil er hat doch jetzt zwei Funkionen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1320028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1320028</guid><dc:creator><![CDATA[MilchMaedchen]]></dc:creator><pubDate>Fri, 06 Jul 2007 22:45:11 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene Funktionen bei Vererbung on Sat, 07 Jul 2007 05:42:43 GMT]]></title><description><![CDATA[<p>MilchMaedchen schrieb:</p>
<blockquote>
<p>Also ich habe den Konstruktor in dem Header jetzt geändert in:</p>
<pre><code class="language-cpp">// Konstruktor
Chefin(const Sekretaer&amp; sekretaer, char* bereich = &quot; &quot;) : Mitarbeiter(Adresse(),personalNr,gehalt){}
</code></pre>
<p>Aber ich muss jetzt doch den Konstruktor in der Cpp doch auch noch ändern, weil er hat doch jetzt zwei Funkionen ...</p>
</blockquote>
<p>Natürlich musst du den Code zwischen Deklaration und Definition gleichhalten (Für jede Methoden-Deklaration ist auch eine Definition nötig). Aber ein anderer Fehler ist immer noch drinne der dir oben schon gesagt wurde:</p>
<p>Chefin(const Sekretaer&amp; sekretaer, char* bereich = &quot; &quot;) : Mitarbeiter(Adresse(),personalNr,gehalt){}</p>
<p>Hier übergibst du ein Objekt &quot;sekretaer&quot; und einen &quot;bereich&quot;, rufst aber den Konstrutor der Basisklasse mit unbekannten Werten auf. Adresse()=&gt; Okay leerer Konstruktor (ob das gewünscht ist, ist eine andere Frage), Wo aber wird in der Übergabe personalNr und gehalt definiert?</p>
<p>Da mir hier jetzt zuviele Codefragmente fehlen kann ich nur rätseln was du damit machen willst, falsch ist es aber egal wie.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1320052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1320052</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Sat, 07 Jul 2007 05:42:43 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene Funktionen bei Vererbung on Sat, 07 Jul 2007 10:22:58 GMT]]></title><description><![CDATA[<blockquote>
<p>class Chefin : protected Mitarbeiter {</p>
<p>private:</p>
<p>const Sekretaer* _sekretaer;<br />
Mitarbeiter _mitarbeiter;<br />
char bereich[laenge+1]; //Deklaration des Bereichs als Char Feld</p>
<p>public:</p>
<p>// Standartkonstruktor<br />
Chefin();</p>
<p>// Konstruktor<br />
Chefin(const Sekretaer&amp; sekretaer, char* bereich = &quot; &quot;);</p>
<p>void sekretaerAendern(Sekretaer* neuerSekretaer); //Sekretaer aendern</p>
<p>};<br />
#endif</p>
</blockquote>
<p>1. wieso _sekretaer ist aggregation, _mitarbeiter ist composition(besser die beiden siend aggregation).<br />
2.</p>
<blockquote>
<p>Chefin(const Sekretaer&amp; sekretaer, char* bereich = &quot; &quot;);</p>
</blockquote>
<p>sekretaer ist const, und const Sekretaer* _sekretaer wie kannst du nachher per sekretaerAendern das durchführen.</p>
<blockquote>
<p>Chefin::Chefin(const Sekretaer&amp; sekretaer, char* bereich) : Mitarbeiter(_adresse, personalNr, gehalt) {</p>
<p>bereichAendern(bereich); //neuen Bereich zuweisen<br />
_sekretaer = &amp;sekretaer;</p>
<p>}</p>
</blockquote>
<p>was ist const Sekretaer&amp; sekretaer, es ist ein const reference, weil du vorher in class const Sekretaer* _sekretaer; definiert hast , deswegen _sekretaer = &amp;sekretaer? es ist gleich wie</p>
<pre><code class="language-cpp">class ...
{
...
const Sekretaer* _sekretaer;
};

Chefin::Chefin(const Sekretaer*&amp; sekretaer, char* bereich) : Mitarbeiter(_adresse, personalNr, gehalt) {

    bereichAendern(bereich); //neuen Bereich zuweisen
    _sekretaer = sekretaer;
}
</code></pre>
<p>aber sekretaer ist const, macht keinen Sinn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1320144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1320144</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Sat, 07 Jul 2007 10:22:58 GMT</pubDate></item></channel></rss>