<?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[Vererbung, doch ich verstehs nicht..]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>unser Lehrer hat uns folgende Aufgabe gestellt.<br />
Wir sollen in Klassen Programmieren, dieses &quot;Projekt&quot; soll mit Visual Studio gemacht werden und am 15. Mai abgabe fertig.</p>
<p>Die Oberklasse soll Fahrzeug sein und 3 Unterklassen besitzen mit folgenden Funktionen.</p>
<p>1. Unterklasse: PKW<br />
Die Unterklasse soll eine Methode haben mit der man den TÜV-STand anzeigen lassen kann, dabei soll das aktuelle Jahr eingegeben werden und in welchem Jahr die letzte TÜV-Püfung war (aktuelles Jahr - TÜV-Prüf-Jahr)<br />
dann soll ausgegeben werden z.B. letzte TÜV-Prüfung war vor x Jahre<br />
TÜV-Prüfung 2 jahre oder länger her soll ausgegeben werden das ein neuer Test nötig ist.<br />
Ansonsten soll alt gesagt werden alles okay oder das in 1 bzw. 2 jahre der nächste TÜV nötig ist.</p>
<p>2. Unterklasse: LKW<br />
Die Unterklasse soll eine Methode haben mit der eine Maut abgerufen werden kann. Man gibt ein wieviel man gefahren ist oder wie viele Brücken ect.<br />
und durch eine festgelegte Maut soll dann der Wert errechnet werden.</p>
<p>3. Unterklasse: Motorrad<br />
Die Unterklasse soll die Methode Beschleunigen-Bremsen haben.<br />
Man gibt eine Max-Geschwindigkeit an und soll bei 0 km/h starten<br />
Nun beschleunigt man und es soll ausgegeben werden wieviel km/h man fährt<br />
auch abbremsen soll möglich sein.<br />
Das Programm soll erst auf befehl beenden.<br />
WICHTIG!<br />
Die Geschwindigkeit darf niemals über Max-Geschwindigkeit oder unter 0 liegen.</p>
<p>Als ich diese Aufgabe Anfang der Woche erhielt...<br />
Dachte ich mir nur... WAS?!?!?!<br />
Ich verstehe nichts von C++ wir fangen mit Vererbung erst an und er verlangt solch eine komplexe Aufgabe (jedenfalls aus meiner Sicht)</p>
<p>Könnt ihr mir bitte helfen?</p>
<p>LG Paranoid</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265308/vererbung-doch-ich-verstehs-nicht</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 07:46:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265308.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Apr 2010 07:26:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung, doch ich verstehs nicht.. on Wed, 21 Apr 2010 07:26:15 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>unser Lehrer hat uns folgende Aufgabe gestellt.<br />
Wir sollen in Klassen Programmieren, dieses &quot;Projekt&quot; soll mit Visual Studio gemacht werden und am 15. Mai abgabe fertig.</p>
<p>Die Oberklasse soll Fahrzeug sein und 3 Unterklassen besitzen mit folgenden Funktionen.</p>
<p>1. Unterklasse: PKW<br />
Die Unterklasse soll eine Methode haben mit der man den TÜV-STand anzeigen lassen kann, dabei soll das aktuelle Jahr eingegeben werden und in welchem Jahr die letzte TÜV-Püfung war (aktuelles Jahr - TÜV-Prüf-Jahr)<br />
dann soll ausgegeben werden z.B. letzte TÜV-Prüfung war vor x Jahre<br />
TÜV-Prüfung 2 jahre oder länger her soll ausgegeben werden das ein neuer Test nötig ist.<br />
Ansonsten soll alt gesagt werden alles okay oder das in 1 bzw. 2 jahre der nächste TÜV nötig ist.</p>
<p>2. Unterklasse: LKW<br />
Die Unterklasse soll eine Methode haben mit der eine Maut abgerufen werden kann. Man gibt ein wieviel man gefahren ist oder wie viele Brücken ect.<br />
und durch eine festgelegte Maut soll dann der Wert errechnet werden.</p>
<p>3. Unterklasse: Motorrad<br />
Die Unterklasse soll die Methode Beschleunigen-Bremsen haben.<br />
Man gibt eine Max-Geschwindigkeit an und soll bei 0 km/h starten<br />
Nun beschleunigt man und es soll ausgegeben werden wieviel km/h man fährt<br />
auch abbremsen soll möglich sein.<br />
Das Programm soll erst auf befehl beenden.<br />
WICHTIG!<br />
Die Geschwindigkeit darf niemals über Max-Geschwindigkeit oder unter 0 liegen.</p>
<p>Als ich diese Aufgabe Anfang der Woche erhielt...<br />
Dachte ich mir nur... WAS?!?!?!<br />
Ich verstehe nichts von C++ wir fangen mit Vererbung erst an und er verlangt solch eine komplexe Aufgabe (jedenfalls aus meiner Sicht)</p>
<p>Könnt ihr mir bitte helfen?</p>
<p>LG Paranoid</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886030</guid><dc:creator><![CDATA[xyz_se84_oszimt]]></dc:creator><pubDate>Wed, 21 Apr 2010 07:26:15 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, doch ich verstehs nicht.. on Wed, 21 Apr 2010 07:34:12 GMT]]></title><description><![CDATA[<p>Hi, willkommen im Forum. Lies dir bitte den Link in meiner Signatur aufmerksam durch und nimm dir zu Herzen was drin steht - und stell deine Frage dann nochmal. Wenn du uns nicht sagst was du schon gemacht hast, und was genau du nicht verstanden hast, kann dir auch nicht geholfen werden. Eine komplettlösung wirst du hier nicht bekommen, schon garnicht für deine Hausaufgaben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886032</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 21 Apr 2010 07:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, doch ich verstehs nicht.. on Wed, 21 Apr 2010 07:57:58 GMT]]></title><description><![CDATA[<p>Also ich habe bisher folgendes fertig:</p>
<p>beschleunigung des Motorrads, das bremsen sollte ich ebenfalls noch schaffen.<br />
und mit if-else schleifen sollte ich ja immer wählen können zwischen beschleunigen und bremsen</p>
<p>das mit dem LKW ist ja auch nicht soo schwer...<br />
dort einen Mautwert festlegen z.B. 3€/Brücke<br />
und dann halt nur cin 5 brücken (brücken * Mautwert = x)</p>
<p>Was ich ganz speziell nicht verstehe ist diese Erstellung damit Sachen vererbt werden können...<br />
Wie gesagt es ist die 1. Stunde in der wir uns mit Vererbung beschäftigt haben und sollen uns das alles aneignen...<br />
Ich weiß nicht einmal wie ich irgendwie diese Header-Dateien machen soll und was da rein kommt und so...</p>
<p>Das möchte ich gern Erklärt haben, woran man erkennen kann, das befehl xyz in eine Headerdatei gehört oder woanders rein...</p>
<p>Gruß Paranoid</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886038</guid><dc:creator><![CDATA[xyz_se84_oszimt]]></dc:creator><pubDate>Wed, 21 Apr 2010 07:57:58 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, doch ich verstehs nicht.. on Wed, 21 Apr 2010 08:05:22 GMT]]></title><description><![CDATA[<blockquote>
<p>Ich verstehe nichts von C++</p>
</blockquote>
<p>Dein Lehrer aber anscheinend auch nicht, zumindest nicht, wenn das die komplette Aufgabenstellung ist.</p>
<p>Die einzelnen Klassen (Fahrzeug, PKW, LKW, Motorrad) haben rein gar nichts miteinander zu tun. Öffentliche (public) Vererbung sollte nur genutzt werden, wenn es sich um eine IST-EIN Beziehung handelt - in der Realität IST-EIN PKW zwar ein Fahrzeug, das spiegelt sich allerdings nicht in der Aufgabenstellung wieder, da das Fahrzeug gar keine eigenen Methoden definiert.<br />
Statt Vererbung zu verwenden, wären hier drei einzelene Klassen PKW, LKW und Motorrad viel angebrachter.</p>
<p>Jetzt mal als anfang ein bisschen Code:</p>
<pre><code class="language-cpp">class Fahrzeug 
{
  /* Leere Klasse, da ja laut Aufgabenstellung nichts in diese Klasse hineingehört */
};

class PKW: public Fahrzeug // Vererbung - Macht eigentlich keinen Sinn, aber wenn es der Lehrer so möchte
{
public:
  PKW(int pruefJahr_); // Konstruktor, dem das aktuelle Prüfjahr übergeben wird 
  void pruefe(); // Methode zum Prüfen des TÜV-Stands
private:
  int pruefJahr; // Das aktuelle Prüfjahr
};
</code></pre>
<p>So ungefähr könnten deine Klassen aussehen. Zur Implementierung habe ich jetzt mal nichts geschrieben, da die eigentlich schon vollkommen in Textform in der Aufgabenstellung steht.</p>
<p>Also nicht davon Abschrecken lassen, dass &quot;Vererbung&quot; genutzt werden soll, sondern einfach mal probieren die einzelnen Funktionen zu schreiben.</p>
<blockquote>
<p>Das möchte ich gern Erklärt haben, woran man erkennen kann, das befehl xyz in eine Headerdatei gehört oder woanders rein...</p>
</blockquote>
<p>Die Definition der Klasse und die Deklaration ihrer Methoden (Funktionen) schreibst du in die Header-Datei, also eine Datei mit der Endung .h .<br />
In einer gleichnamigen Datei, mit der Endung .cpp, schreist du dann die Defintionen der Klassenmethoden. Der Aufbau ist normalerweise folgendermaßen:</p>
<pre><code class="language-cpp">// PKW.h

#ifndef PKW_H // Include guard, kannst du wahrscheinlich auch weglassen, wenn 
#define PKW_H // ihr das noch nicht hattet

#include &quot;Fahrzeug.h&quot;

class PKW: public Fahrzeug
{
public:
  PKW(int pruefJahr_); 
  void pruefe(); 
private:
  int pruefJahr;
};

#endif

--------------------------------------
// PKW.cpp

#include &quot;PKW.h&quot;

PKW::PKW(int pruefJahr_)
{
  pruefJahr = pruefJahr_;
}

void PKW::pruefe()
{
  /* Hier bist du gefragt */
}
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886042</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Wed, 21 Apr 2010 08:05:22 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, doch ich verstehs nicht.. on Wed, 21 Apr 2010 08:24:10 GMT]]></title><description><![CDATA[<p>ja okay ich habe ihn gerade gefragt das hat er vergessen zu erwähnen (sowas gehört meiner meinung nach auf das Arbeitsblatt -.-)</p>
<p>er meinte irgendwie folgendes:</p>
<pre><code class="language-cpp">class Fahrzeug
{
    private:
            string marke;
            string fahrzeugtyp;
    protected:
            string nummernschild;
            string fahrzeugfarbe;
}
</code></pre>
<p>Ich werde da aber nicht so ganz schlau draus...<br />
das sind jetzt vererbungsattribute, die dann in den einzelnen Klassen eingebunden werden können oder?<br />
Sodass gesagt wird: pkw.marke = mercedes</p>
<p>richtig??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886055</guid><dc:creator><![CDATA[xyz_se84_oszimt]]></dc:creator><pubDate>Wed, 21 Apr 2010 08:24:10 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung, doch ich verstehs nicht.. on Wed, 21 Apr 2010 08:42:57 GMT]]></title><description><![CDATA[<blockquote>
<p>Sodass gesagt wird: pkw.marke = mercedes</p>
</blockquote>
<p>Nicht ganz. Hier mal eine Tabelle (von asc), die die verschiedenen Zugriffsmöglichkeiten zeigt:</p>
<pre><code>Zugriff möglich?
           In Klasse   In abgeleiteter Klasse   Von außen
public        ja                 ja                ja
protected     ja                 ja               nein
privat        ja                nein              nein
</code></pre>
<p>D.h. auf Variablen oder Methoden, die in deiner Klasse als public definiert sind, kannst du von überall zugreifen. Bei der Klasse Fahrzeug gibt es solche Methoden/Variablen nicht.<br />
Auf Variablen oder Methoden die protected sind, kannst du auch in abgeleiteten Klassen zugreifen, allerdings nicht von außen.<br />
Und auf Variablen oder Methoden die private sind, kannst du nur in der Klasse selbst zugreifen.</p>
<p>Folgendes ist also nicht möglich:</p>
<pre><code class="language-cpp">PKW einpkw;
einpkw.marke = &quot;mercedes&quot; // Fehler: Die Variable marke ist private und kann nicht von außen geändert werden
</code></pre>
<p>Ich werde jetzt nicht die verschiedenen Vererbungsmechanismen beschreiben, dazu gibt's genug Material im Internet.<br />
Am besten liest du dich erstmal etwas ein und fragst nochmal, wenn du konkrete Probleme hast.</p>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886070</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Wed, 21 Apr 2010 08:42:57 GMT</pubDate></item></channel></rss>