eine konstante Methode der Basisklasse von der abgeleiteten Klasse
class Base{
//...
public:
int get()const{ // const
// Do something.
}
int get(int x){
// Do Someting.
}
//...
};
class Derived:public Base{
//....
public:
int get(){ // not const (not the same signature as the one is the base class)
//Dosomething
}
//...
};
zwingende weiß ich, dass() in abgeleiteten Klasse bekommt verstecken get() und (int x) Methoden innerhalb Basisklasse erhalten. Also meine Frage ist:
1) ist dies Consedred Überladung oder Übersteuern?
2) macht das machen von get() const in der abgeleiteten Klasse wird etwas ändern (versteckt oder nicht versteckt Basisklasse Methoden).
Zitat aus einem C++ Buch:
„Es ist ein häufiger Fehler eine Basisklasse Methode zu verstecken, wenn Sie beabsichtigen, sie außer Kraft zu setzen, indem zu vergessen das Schlüsselwort const schließen const Teil der Signatur ist, und. so dass es aus ändert die Signatur und verbirgt damit die Methode nicht außer Kraft gesetzt. "
Overloading: http://en.wikipedia.org/wiki/Function_overloading, Zwingende: http://en.wikipedia.org/wiki/Method_overriding – alfa
in Basis zweiten get verpasst den Rückgabetyp –