Heim > Backend-Entwicklung > C++ > Hauptteil

Wie verwende ich eine Membervariable als Standardargument in C-Memberfunktionen?

Susan Sarandon
Freigeben: 2024-11-14 18:11:02
Original
769 Leute haben es durchsucht

How to Use a Member Variable as a Default Argument in C   Member Functions?

Verwenden einer Mitgliedsvariablen als Standardargument in C

Beim Erstellen von Mitgliedsfunktionen in C ist es oft wünschenswert, bestimmte Argumente optional und optional zu machen Verwenden Sie eine Mitgliedsvariable als Standardwert. Dies kann jedoch Kompilierungsfehler auslösen, wenn die Mitgliedsvariable nicht statisch ist.

Beachten Sie den folgenden Codeausschnitt:

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

protected:
    Point initPos;
    Point currPos;
};

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

Der Versuch, diesen Code zu kompilieren, führt zu der Fehlermeldung: „ungültig Verwendung des nicht-statischen Datenelements „Object::initPos“. Dies liegt daran, dass Standardargumentausdrücke nicht von Nicht-Klassenmitgliedern abhängen können.

Um dieses Problem zu beheben, müssen Sie zwei Überladungen der MoveTo-Methode verwenden:

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

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

Die Methode mit einem Argument ruft die Methode mit zwei Argumenten auf und übergibt den Standardwert. Dies ermöglicht eine einzelne Implementierung von MoveTo und behält gleichzeitig die gewünschte Funktionalität der Verwendung einer Mitgliedsvariablen als Standard bei.

Durch die Einhaltung dieser Techniken können Sie Mitgliedsvariablen effektiv als Standardargumente in C-Mitgliedsfunktionen verwenden, ohne dass eine Kompilierung erforderlich ist Fehler.

Das obige ist der detaillierte Inhalt vonWie verwende ich eine Membervariable als Standardargument in C-Memberfunktionen?. 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