Wie verwende ich eine Funktion einer eigenen Klasse in der for_each-Methode?

Angenommen, ich habe diese Klasse (von std :: Vector geerbt, es ist nur ein Beispiel)

#include <vector>

using namespace std;

template <class T>
class C : public vector<T> {

    // I don't want to use static keyword
    void transformation(T i) {
        i *= 100;
    }

    public:   
    void method() {
        for_each(this->begin(), this->end(), transformation);
    }
};

int main() {
    C<double> c;
    for (int i=-3; i<4; ++i) {
        c.push_back(i);
    }

    c.method();
}

Wie rufe ich for_each mit der Klassenmethode in der Klasse selbst auf? Ich weiß, dass ich das Schlüsselwort static verwenden kann, aber wie kann ich ein Funktionsobjekt auch ohne static verwenden?

Ich erhalte diese Fehlermeldung beim Kompilieren:

for_each.cc: 21: 55: Fehler: 'C :: transformation' kann nicht vom Typ 'void (C ::) (double)' in den Typ 'void (C :: *) (double)' konvertiert werden for_each (this- > begin (), this-> end (), transformation);

Ich denke, ich muss hinzufügen.* oder->* irgendwo, aber ich kann nicht herausfinden, wo und warum.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage