Ich versuche, einige fortgeschrittenere Punkte von C++ - Klassen so gut wie möglich (oder zumindest mit GNU) Compiler/eingebaute Funktionen einzubinden. Alles basierend auf einem Logger-Konzept für ein (großes und umfangreiches) Arbeitsprojekt. Was bringt mich zu diesem Pseudo-Code:Automatischer Aufruf von Basisklassenfunktionen
class Base {
public:
void increment(){
++m_Val;
}
private:
static int m_Val;
};
class Above : private Base{
public:
void doA(){
//Foo
}
void doB(){
//Bar
}
};
Das wurde als ein Konzept gezeigt; gibt es einen Weg, so dass die bloße Vererbung der Basis doA()
und doB()
implizit die Basisfunktion increment()
aufrufen kann, ohne dass ich den Funktionsaufruf zu increment()
in jeder einzelnen Funktion jeder einzelnen Klasse, die erbt? Wenn nicht eine direkte Antwort, gibt es eine bestimmte Bezeichnung für das, was ich tun möchte? Oder wird es als Teil von Boost oder anderen Bibliotheken angeboten?
ich glaube nicht, dass es existiert. –
Sie könnten sich für [aspektorientierte Programmierung] interessieren (https://en.wikipedia.org/wiki/Aspekt- orientierte_Programmierung). – AlexD
@ DanielA.White Definitiv, wovor ich Angst hatte. Ich weiß, C++ ist immer noch eine "wachsende" Sprache, aber war nicht sicher, ob es eine Möglichkeit gab, dies noch vorher mit einem 'Hacky-Code' zu tun – M4rc