<?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[Aufrufen des übergeordneten Konstruktors]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich stehe auf dem Schlauch und komme nicht mehr weiter. Ich schreibe eine kleine Applikation für einen Arduino und meine Modellbahn. Objektorientierte Programmierung ist mir nicht ganz unbekannt, trotzdem hänge ich nun fest. Ich habe folgende Klassen definiert</p>
<pre><code>class accessories{
private:
	uint16_t m_BaseAddress;
	byte m_BasePin;

public:
	accessories(uint16_t BaseAddress, byte BasePin);
	virtual void process();
	virtual void notifyAddress(uint16_t Address);
};

class Signal : public accessories {
private:
	byte m_Mode;
	byte m_Fahrbegriff;
	byte m_NewFahrbegriff;

public:
	Signal(uint16_t BaseAddress_, byte BasePin_, byte Mode_);
	void process();
	void notifyAddress(uint16_t Address);
};

class Weiche : public accessories {
private:
	byte m_PulsLength;

public:
	Weiche(uint16_t BaseAddress_, byte BasePin_, byte PulsLength_);
	void process();
	void notifyAddress(uint16_t Address);
};
</code></pre>
<p>Wie rufe ich von den Untergeordneten Klassen den Konstruktor der übergeordneten Klasse auf, damit die die Variablen korrekt initialisiert werden? Ich meine nämlich irgendwo gelesen zu haben dies geschieht nicht automatisch über die Vererbung.</p>
<p>Gruss<br />
Andy</p>
<p>Gruss<br />
Andy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/340025/aufrufen-des-übergeordneten-konstruktors</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 12:30:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/340025.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Oct 2016 17:38:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aufrufen des übergeordneten Konstruktors on Fri, 14 Oct 2016 17:38:03 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich stehe auf dem Schlauch und komme nicht mehr weiter. Ich schreibe eine kleine Applikation für einen Arduino und meine Modellbahn. Objektorientierte Programmierung ist mir nicht ganz unbekannt, trotzdem hänge ich nun fest. Ich habe folgende Klassen definiert</p>
<pre><code>class accessories{
private:
	uint16_t m_BaseAddress;
	byte m_BasePin;

public:
	accessories(uint16_t BaseAddress, byte BasePin);
	virtual void process();
	virtual void notifyAddress(uint16_t Address);
};

class Signal : public accessories {
private:
	byte m_Mode;
	byte m_Fahrbegriff;
	byte m_NewFahrbegriff;

public:
	Signal(uint16_t BaseAddress_, byte BasePin_, byte Mode_);
	void process();
	void notifyAddress(uint16_t Address);
};

class Weiche : public accessories {
private:
	byte m_PulsLength;

public:
	Weiche(uint16_t BaseAddress_, byte BasePin_, byte PulsLength_);
	void process();
	void notifyAddress(uint16_t Address);
};
</code></pre>
<p>Wie rufe ich von den Untergeordneten Klassen den Konstruktor der übergeordneten Klasse auf, damit die die Variablen korrekt initialisiert werden? Ich meine nämlich irgendwo gelesen zu haben dies geschieht nicht automatisch über die Vererbung.</p>
<p>Gruss<br />
Andy</p>
<p>Gruss<br />
Andy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511581</guid><dc:creator><![CDATA[DZ5Ofaw]]></dc:creator><pubDate>Fri, 14 Oct 2016 17:38:03 GMT</pubDate></item><item><title><![CDATA[Reply to Aufrufen des übergeordneten Konstruktors on Fri, 14 Oct 2016 17:48:51 GMT]]></title><description><![CDATA[<p>In der Initialisierungsliste.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511584</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 14 Oct 2016 17:48:51 GMT</pubDate></item><item><title><![CDATA[Reply to Aufrufen des übergeordneten Konstruktors on Fri, 14 Oct 2016 18:09:13 GMT]]></title><description><![CDATA[<p>ok, initalisierungsliste habe ich gefunden. Sieht das dann so aus?</p>
<pre><code>Signal::Signal(uint16_t BaseAddress_, byte BasePin_, byte Mode_) : accessories(BaseAddress_, BasePin_){

	m_Mode = Mode_

};
</code></pre>
<p>Kann das in der cpp Datei sein oder muss dies in der Headerdatei gemacht werden?</p>
<p>Gruss<br />
Andy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511585</guid><dc:creator><![CDATA[DZ5Ofaw]]></dc:creator><pubDate>Fri, 14 Oct 2016 18:09:13 GMT</pubDate></item><item><title><![CDATA[Reply to Aufrufen des übergeordneten Konstruktors on Fri, 14 Oct 2016 19:24:00 GMT]]></title><description><![CDATA[<p>Mach es so:</p>
<pre><code>Signal::Signal(uint16_t BaseAddress_, byte BasePin_, byte Mode_) : accessories(BaseAddress_, BasePin_), m_Mode(Mode_){};
</code></pre>
<p>Wenn das der ganze Konstruktor ist, kannst Du ihn so direkt in den Header schreiben. Du kannst ihn aber natürlich, wenn Du willst, auch so in die cpp-Datei schreiben und im Header nur deklarieren, dann ohne Initialisierungsliste ...<br />
Ach so ... im Header entfällt natürlich 'Signal::' ... egal, ob Du dort nur Deklaration, oder gleich die Definition machst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511589</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Fri, 14 Oct 2016 19:24:00 GMT</pubDate></item><item><title><![CDATA[Reply to Aufrufen des übergeordneten Konstruktors on Fri, 14 Oct 2016 22:36:53 GMT]]></title><description><![CDATA[<p>DZ5Ofaw schrieb:</p>
<blockquote>
<p>ok, initalisierungsliste habe ich gefunden. (...)</p>
<p>Kann das in der cpp Datei sein oder muss dies in der Headerdatei gemacht werden?</p>
</blockquote>
<p>Die Initialisierungsliste brauchst du dort wo die Funktion implementiert (definiert) wird.<br />
Wenn du den Ctor im Header implementierst, dann muss das natürlich in die Header.<br />
Wenn du den Ctor im Header nur deklarierst, dann muss im Header nix geändert werden, und der Code so ins .cpp File.</p>
<p>Oder anders gesagt: Die Initialisierungsliste schlägt sich nicht auf die Signatur des Ctor nieder und wird daher bei der Deklaration auch nicht angegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511617</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 14 Oct 2016 22:36:53 GMT</pubDate></item></channel></rss>