„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > ## Warum wird mein Temperaturwert im Array anstelle der beabsichtigten Variablen in meiner C ++ - Klasse gespeichert?

## Warum wird mein Temperaturwert im Array anstelle der beabsichtigten Variablen in meiner C ++ - Klasse gespeichert?

Gepostet am 2025-03-22
Durchsuche:997

## Why is my temperature value being stored in the array instead of the intended variable in my C   class?

schattenvariablen in c

In der objektorientierten Programmierung treten Schatten auf, wenn eine in einer Klasse definierte Variable in einem Out-Scop den gleichen Namen wie eine Variable hat. Dies kann zu unerwartetem Verhalten führen, da die innere Variable Vorrang vor der äußeren Variablen hat. int n; double mess_set []; Char Nomefile []; double t; öffentlich: void get (); void printall (); double mean (); double thermal_comp (); };

Die GET -Methode in dieser Klasse soll Werte aus einer Datei lesen und im Array mess_set speichern und einen Temperaturwert lesen und in der T -Variablen speichern. cout > nomefile; cout > mess_set [m]; if (f.eof ()) brechen; M ; } f.close (); N = m 1; cout > t; cout Sie haben festgestellt, dass der Temperaturwert (t) im ersten Element des Arrays mess_set (mess_set [0]) anstelle der beabsichtigten T -Variablen gespeichert wird. In diesem Fall kann die in der Get -Methode deklarierte T -Variable die Klassenmitglied -Variable t.

Um das Schatten zu vermeiden, können Sie entweder verschiedene Namen für die Variablen verwenden oder den Scope -Auflösungsoperator verwenden (: :), um explizit auf die Klassenmitgliedsvariable zu verweisen. Messen :: get () { cout > nomefile; cout > mess_set [m]; if (f.eof ()) brechen; M ; } f.close (); N = m 1; cout > Temperatur; T = Temperatur; cout

class Measure {
    int N;
    double measure_set[];
    char nomefile[];
    double T;

    public:
    void get( );
    void printall( );
    double mean( );
    double thermal_comp( );
};

void mee :: get () {) cout > nomefile; cout > mess_set [m]; if (f.eof ()) brechen; M ; } f.close (); N = m 1; cout > this-> t; // Verwenden Sie den Operator des Bereichsauflösungsbetriebs, um sich auf die Klassenmitgliedvariable zu beziehen cout

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3