Alleine dafür, dass du kein intro hast bekommst du nen daumen hoch :D Spaß bei seite, hast ne echt gute art zu erklären und man hört dir gerne zu. Direkt mal abonniert
Hi, echt ein tolles Video! Ich habe allerdings noch eine Frage. Angenommen die Klasse Hund ist private von der Klasse Tier abgeleitet und Dalmatiner public von Hund (wie im Video). Würde es einen Fehler geben, wenn nun in der Main-Fkt. an der Stelle von „ace.wieMachtDasTier“ „ace.test“ stehen würde? LG
Hi, danke. Am Besten immer ausprobieren. Aber wenn ich grade den Code richtig überflogen hab (hab nicht alles im Kopf, was ich je getippt habe :D) kennt zwar niemand außer Tier und Hund die geerbte Funktion wiemachtdastier aber test ist ja eine gewöhnlich public Methode und wenn die Veerbung public stattfindet werden alle public Methoden auch public in Dalmatiner übernommen, daher sollte das gehen.
Frage zu class Hund: private Tier {}; ich verstehe nicht, wieso man private vererbt. Du sagst im Video, dass dadurch alle Methoden der Tier (parent class) private werden. Dadurch können diese Methoden weder in der Hund (child class), noch in der main funktion aufgerufen werden. Was genau habe ich dann vererbt? wäre sehr cool, wenn es jemand kurz erklären könnte :)
Hallo Morpheus! Bei mir hat die Methode wieMachtDasTier() mit einem Dalmatiner Objekt funktioniert. Aber für die Dalmatiner Klasse musste ich erstmal einen Default-Konstruktor definieren, weil ich ohne Konstruktor eine Fehlermeldung bekommen habe (use of deleted function 'Dalmatiner::Dalmatiner()') Das Problem ist, dass die Klasse Dalmatiner die Klasse Hund vererbt. Und die Klasse Hund hat einen user-definierten Konstruktor. Deswegen habe ich einen Konstruktor für Dalmatiner gebraucht. Das ist ein Teil meines Codes: class Dalmatiner : public Hund { public: Dalmatiner() : Hund("") { } }; int main() { Hund ace("ace"); ace.wieMachtDasTier(); ace.test(); Dalmatiner neuerHund; neuerHund.test(); neuerHund.wieMachtDasTier(); return 0; }
Sehr gutes Video. Nur eine Frage: Warum soll ich 'protected' oder 'private' bei der Vererbung nutzen? Wie du am Ende sagtest, mit 'public' ist man eigentlich auf der sicheren Seite, weil dann nicht auf einmal eine 'public' Methode der Basisklasse zu einer 'protected' Methode in der abgeleiteten Klasse wird z.B.
hat sich erledigt, habe die zuweisung nur ausversehen außerhalb einer methode/funktion (immer noch kp was da der unterschied ist xD) geschrieben... da klappt natürlich nix
Der Spruch mit dem Intro war geil haha
Du machst das echt ziemlich gut. Kann mir für jedes Video eine Vorlesung sparen^^
:D das freut mich natürlich :)
Alleine dafür, dass du kein intro hast bekommst du nen daumen hoch :D
Spaß bei seite, hast ne echt gute art zu erklären und man hört dir gerne zu. Direkt mal abonniert
:D Danke^^
Der Spruch mit dem Intro👍🏽😂😂
ehrenmann 1337 danke ich küss dein auge brudi
😂👍
sehr gut erklärt
vielen Dank :)
ich weiß, etwas spät, aber warum verwendet er std:: wenn er using namespace std schon oben stehen hat?
Hi, echt ein tolles Video!
Ich habe allerdings noch eine Frage.
Angenommen die Klasse Hund ist private von der Klasse Tier abgeleitet und Dalmatiner public von Hund (wie im Video).
Würde es einen Fehler geben, wenn nun in der Main-Fkt. an der Stelle von „ace.wieMachtDasTier“ „ace.test“ stehen würde?
LG
Hi,
danke.
Am Besten immer ausprobieren. Aber wenn ich grade den Code richtig überflogen hab (hab nicht alles im Kopf, was ich je getippt habe :D) kennt zwar niemand außer Tier und Hund die geerbte Funktion wiemachtdastier aber test ist ja eine gewöhnlich public Methode und wenn die Veerbung public stattfindet werden alle public Methoden auch public in Dalmatiner übernommen, daher sollte das gehen.
Frage zu class Hund: private Tier {};
ich verstehe nicht, wieso man private vererbt. Du sagst im Video, dass dadurch alle Methoden der Tier (parent class) private werden. Dadurch können diese Methoden weder in der Hund (child class), noch in der main funktion aufgerufen werden.
Was genau habe ich dann vererbt? wäre sehr cool, wenn es jemand kurz erklären könnte :)
Hallo Morpheus! Bei mir hat die Methode wieMachtDasTier() mit einem Dalmatiner Objekt funktioniert. Aber für die Dalmatiner Klasse musste ich erstmal einen Default-Konstruktor definieren, weil ich ohne Konstruktor eine Fehlermeldung bekommen habe (use of deleted function 'Dalmatiner::Dalmatiner()') Das Problem ist, dass die Klasse Dalmatiner die Klasse Hund vererbt. Und die Klasse Hund hat einen user-definierten Konstruktor. Deswegen habe ich einen Konstruktor für Dalmatiner gebraucht. Das ist ein Teil meines Codes:
class Dalmatiner : public Hund
{
public:
Dalmatiner() : Hund("")
{
}
};
int main()
{
Hund ace("ace");
ace.wieMachtDasTier();
ace.test();
Dalmatiner neuerHund;
neuerHund.test();
neuerHund.wieMachtDasTier();
return 0;
}
Sehr gutes Video. Nur eine Frage: Warum soll ich 'protected' oder 'private' bei der Vererbung nutzen? Wie du am Ende sagtest, mit 'public' ist man eigentlich auf der sicheren Seite, weil dann nicht auf einmal eine 'public' Methode der Basisklasse zu einer 'protected' Methode in der abgeleiteten Klasse wird z.B.
Ich nutze auch immer nur public, aber falls du mal auf code stößt, der das verwendet, weißt du nun bescheid
@@TheMorpheusTutorials Alles klar. Danke für deine Antwort :D
kann man auch protected variablen aus der superklasse verändern, abfragen?? wenn wie? da stand bei mir irgendein fehler
Welcher Fehler? Das sollte eig unproblematisch sein. Sie sind halt auch protected, d.h. du kannst nicht überall drauf zugreifen
hat sich erledigt, habe die zuweisung nur ausversehen außerhalb einer methode/funktion (immer noch kp was da der unterschied ist xD) geschrieben... da klappt natürlich nix
Danke für diese serie! Noch ne dumme Frage:
Warum gibt es eine private Vererbung wenn sie eh nichts mit gibt? Sorry falls das jetzt zu dumm ist!🤣🤣🤣
@DGC 08 na, auf jeden!😉 Vielen Dank für die Antwort!👍👍👍
Ich versteh nicht ganz wofür man eine Klasse private erben lässt. Dann kann man ja gleich in der Superklasse alles private machen oder?
Kannst du schon, wenn du Zugriff auf die Superklasse hast, aber das ist ja nicht immer so. Zb im Team oder bei Bibliotheken
ich glaube so ganz richtig ist das nicht. wenn du protected von Tier an den Hund vererbst, sollte Hund::wieMachtDasTier() zugreifbar sein!