Forum
Tipps
News
Menu-Icon

Vererbung

Guten Abend meine herren und damen =)

was ich fragen wollte ist ob ich bei vererbung die unterklassen die selben funktionen wie die hauptklasse haben muss oder kann ich andere klassen hinzufügen und löschen ????


Antworten zu Vererbung:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Nabend |

Wenn eine Klasse von einer anderen erbt, dann erbt sie auch deren Funktionen (besser: Methoden).

Was meinst du jetzt mit "Klassen hinzufügen und löschen"?
Aus 2 mach eine geht schlecht. Stell' dir eine Klasse vor wie einen Datentyp (was sie ja auch ist), nur komplexer. Eine Variable hat immer einen eindeutigen Typ. Sie wird niemals double und string gleichzeitig sein ;)

greez 8)
JoSsiF

ne chef das meinte ich nicht...
guck mom

\\hauptklasse
class auto
{
   auto();
   ~auto(){};
   rechnung(){};
   zeiger  ();
};

\\unterklasse

class audi
{
  audi();
  ~audi(){};
  muss ich jetzt rechnung () oder rechnungaudi() ?
};

joa halt ob ich die funktion wie oben nennen kann oder muss sie anders sein ?
und noch eine frage ist was kommt immer vor den funnkionen hin audi und in die klammern ???
mein lehrer meine irgendwas mit rückgabe wert und so.-

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
ne chef das meinte ich nicht...
Dann sag, was du meinst! ;)

Was issn das überhaupt für 'ne Sprache? Die Tilde vor so einer Methodendefinition hab ich ganz ehrlich noch nich gesehen.

das ist c++ :-)
ja diese tilde ist für den desktruktor... mhh darum gings ja eigentlich nicht sonderen um die funktion drunter !!!

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
das ist c++ :-)
ja diese tilde ist für den desktruktor...

Dann hab ich's doch schonmal gesehen ;D  ...lang ist's her ;)

Also erstmal: wenn du eine Klasse von einer anderen ableiten willst, musst du das natürlich auch angeben:

class audi : public auto
{
  ...
}

Die Funktionen von Auto stehen dann wie gesagt in Audi zur Verfügung. Wenn die Funktion in Audi etwas anderes machen soll als in Auto, definierst du sie dort einfach neu, also mit dem gleichen Namen. Es steht dir natürlich frei, eine Funktion mit anderem Namen einzuführen.

Frage damit beantwortet?

greez 8)
JoSsiF

okay und noch ne frage was schreibe ich vor den einzelnen funktionen hin ??? und in die klammern ???

zb.:

class auto
{
 auto()
 ~auto(){}
 xx tanken (xx)

wann schreibe ich da was in die xx rein (ich weiß was int,char,double oder so ist) nur ich weiß nicht ob ich da was schreiebn soll wenn ja wieso ?
und aller aller letzte frage ???
ich schreieb zwar immer ein dektruktor hin aber was habe ich durch den destruktor ???

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

prinzipiell unterscheidest Du da zwischen Funktionen und Prozeduren (obwohl letzteres von einigen Menschen gemieden wird).
Wenn Du int, char, long, double oder dergleichen davor schreibst sagst Du, daß Du eine Funktion schreibst, die also einen WErt von diesem Typ zurück liefert.

Bsp.:
int meineFunktion() {
  ...
  return Integerzahl;
}

d.h. Du gibst über Den Funktionsnamen einen Wert zurück und kannst dann irgendwo anders schreiben:

  int a = meineFunktion();

Willst Du keinen Wert über den Funktionsnamen zurück geben, also nur eine Prozedur schreiben, dann nimmst Du void. Viele sind jedoch der Meinung, Du solltest auch bei Prozeduren Werte zurück geben, und wenn es nur ein Fehlercode ist. Es kann ja in der Prozedur irgendwas schief laufen, und dann ist es immer klug von aussen zu wissen, was da falsch gelaufen ist.

Zur Frage "Destruktor" kann ich nur folgendes sagen:

Was macht denn ein Konstruktor? Der soll i.d.R. die benötigten Variablen und Speicherbereiche für die Klasse reservieren und ggf. vorinitialisieren. D.h. Wenn Du die Klasse irgendwo genutzt hast, sind die Variablen alle deklariert und haben genormte Werte.

Ein Destruktor macht nun genau das Gegenteil. I.d.R. ist auch er nur dazu da, reservierten Speicherbereich von Variablen wieder freizugeben, damit nicht noch irgend welche Variablen-Leichen im Speicher umlungern. Ein Destruktor ist daher nur so eine Art "Aufräum-Methode", die jeglichen genutzen Speicher wieder frei geben soll und (wenn der Programmierer das auch noch wünscht) vorhergegangene Änderungen ggf. wieder rückgängig zu machen.

Ein Beispiel dafür: Ein Freund hat mal in DOS ein Tetris Spiel programmiert, hatte jedoch nur 16 Farben zur Verfügung. Da die ihm aber nicht gefallen haben, hat er einfach die Farbtabelle der Grafikkarte neu geschrieben. Beim ersten mal starten hat das auch prima funktioniert, doch als er das Programm beendet hatte, waren alle Farben verstellt. Schwarz war nicht mehr schwarz, blau nicht mehr blau, usw. Daher hatte er sich nen Destruktor gebaut, der beim Beenden des Programmes aufgerufen wurde, alle Variablen deinitialisierte und die Farbtabelle wieder auf ihre normalen Werte zurück stellte :-)

Hoffe ich konnte damit helfen
Gruß Maddin

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ja, also um das ma in einfache Worte zu packen:

Vor den Funktionsnamen kommt der Rückgabetyp (das, was rauskommt), und in Klammern die Parameter (das, was reingeht).

Ob du Parameter brauchst, musst du selber entscheiden. Wenn du beispielsweise eine Additionsfunktion programmierst, wäre es also sinnvoll, zwei Summanden als Parameter zu übergeben und die Summe zurückzugeben. Klar? :)

greez 8)
JoSsiF

nur was kommt dann in die klammern bei den funktionenn
z.b.:
class Audi
{
 audi()
 ~audi()
 auto ( xx )
}
anstelle der xx ;
wäre lieb...Okay sonst alles verstanden ich bedanke mich im voraus

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Bei der Deklaration kommt ein Paar aus Typ und Bezeichner rein, beim Aufruf ein Wert (oder Ausdruck).

Bitte nochmal auf deutsch ;-)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Typ = int, double, string

Bezeichner = irgendEinName

Wert = 2, 3.575, "ein lustiger Text"

Ausdruck = (iSummand + iSummand), ...


« Spiel Programmieren!!!Fachliteratur für C++ und VBA »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Auslagerungsdatei
Die Auslagerungsdatei, auch bekannt als virtueller Speicher, ist ein wichtiges Element im Windows-Betriebssystem. Sie dient als Erweiterung des physischen Arbeitsspeicher...

Maus
Eine Computer-Maus, auch Maus oder englisch "Mouse" ist ein PC Eingabegerät, mit dem der Maus-Pfeil, Cursor oder Pointer auf dem PC Bildschirm gesteiert wird. Die Ma...

Type 1 Schriften
Type 1 ist ein Schriftformat, das die Schrift-Beschreibung in Form von PostScript-Befehlen speichert. PostScript-Schriften werden mithilfe von PostScript-Operationen besc...