Heim > Backend-Entwicklung > C++ > Hauptteil

Wie können Sie Mitgliedsvariablen als Standardargumente in C-Mitgliedsfunktionen verwenden?

Patricia Arquette
Freigeben: 2024-11-11 08:58:03
Original
632 Leute haben es durchsucht

How Can You Use Member Variables as Default Arguments in C   Member Functions?

Mitgliedsvariablen als Standardargumente in C verwenden

In C müssen Sie möglicherweise Argumente für Mitgliedsfunktionen optional machen. Wenn kein Argument angegeben wird, wäre es vorzuziehen, eine Mitgliedsvariable als Standard zu verwenden.

Betrachten Sie das folgende Beispiel:

class Object {
    ...
    void MoveTo(double speed, Point position);

protected:
    Point initPos;
    Point currPos;
};
Nach dem Login kopieren

Der Code versucht, die Mitgliedsvariable initPos als zuzuweisen Standardwert für den Positionsparameter in der MoveTo-Funktion:

void Object::MoveTo(double speed, Point position = initPos) {
    currPos = postion;
}
Nach dem Login kopieren

Dieser Ansatz führt jedoch zu einer Kompilierung Fehler:

error: invalid use of non-static data member 'Object::initPos'
Nach dem Login kopieren

Das Problem besteht darin, dass Standardargumentausdrücke für Mitgliedsfunktionen ausschließlich auf Klassen- oder globalen Bereichselementen basieren müssen. Darüber hinaus muss das Standardargument in der Deklaration der Methode in der Header-Datei definiert werden.

Um dieses Problem zu beheben, können zwei Überladungen der MoveTo-Methode erstellt werden:

void Object::MoveTo(double speed) {
    MoveTo(speed, initPos);
}

void Object::MoveTo(double speed, Point position) {
    // Implementation here.
}
Nach dem Login kopieren

Die MoveTo-Methode, die Nimmt ein einzelnes Argument an, ruft die MoveTo-Methode mit zwei Argumenten auf und übergibt den initPos-Wert als Standard.

Object object;
object.MoveTo(10.0); // Calls MoveTo(10.0, initPos)
Nach dem Login kopieren

Dieser Ansatz folgt dem DRY Prinzip, indem die Implementierung von MoveTo nur einmal definiert werden darf.

Das obige ist der detaillierte Inhalt vonWie können Sie Mitgliedsvariablen als Standardargumente in C-Mitgliedsfunktionen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage