Ist es korrekt aus Begriffen von OOP, um gemeinsame Methode abgeleiteter Klassen in der Basisklasse, wo Basis nicht (!) Es verwenden. Wie im Beispiel:Putting der gemeinsamen Methode der abgeleiteten Klassen in der Basis, wo die Basis es nicht verwendet
class Base {
virtual void CalculateTotal()
{
//calculate without taxes (no need in base)
}
void CalculateTaxes()
{
//do something
}
}
class A : Base {
override void CalculateTotal() {
//...
CalculateTaxes();
//...
}
}
class B : Base {
override void CalculateTotal() {
//...
CalculateTaxes();
//...
}
}
ändern Sie 'CalculateTaxes()' nur so, dass sie "protected" ist. Abgesehen davon gibt es hier kein Problem - die Klasse muss nicht ihre eigenen Methoden aufrufen. – zaitsman
Ja, das ist in Ordnung, aber es sollte geschützt werden. –