Heim > Backend-Entwicklung > C++ > Hauptteil

## Wie kann ich das Shadowing von Variablen in C-Klassen vermeiden?

Mary-Kate Olsen
Freigeben: 2024-10-25 01:41:30
Original
740 Leute haben es durchsucht

## How Can I Avoid Shadowing Variables in C   Classes?

Shadowing-Variablen in C

Shadowing-Variablen, ein Phänomen, bei dem Variablen mit demselben Namen in unterschiedlichen Bereichen innerhalb eines Programms deklariert werden, können dazu führen Dies kann zu Verwirrung und unerwartetem Verhalten führen.

Im Kontext von C-Klassen kann dieses Problem auftreten, wie im bereitgestellten Codeausschnitt gezeigt, wenn eine lokale Variable innerhalb einer Mitgliedsfunktion deklariert wird, die denselben Namen wie eine Mitgliedsvariable hat .

Schatten verstehen

Im Beispiel werden die Mitgliedsvariablen T und Measure_set innerhalb der Measure-Klasse definiert, während eine lokale Variable T innerhalb der get-Methode deklariert wird. Wenn dieser lokalen Variablen ein Wert zugewiesen wird, überschattet sie die gleichnamige Mitgliedsvariable.

Dies geschieht, weil der Compiler zuerst nach der Variablendefinition im aktuellen Bereich sucht. Da in der Get-Methode eine lokale Variable vorhanden ist, hat diese Vorrang vor der Mitgliedsvariablen.

So vermeiden Sie Shadowing

Eine Möglichkeit, Variablen-Shadowing zu vermeiden, ist die Verwendung von Präfixen oder Suffixe für Mitgliedsvariablen. Beispielsweise besteht eine gängige Praxis darin, ein „m_“-Präfix hinzuzufügen, um Mitgliedsvariablen anzugeben. Dies hilft, sie von lokalen Variablen zu unterscheiden.

Beispielcode

Hier ist eine modifizierte Version der Measure-Klasse, die Präfixe verwendet, um Schattenbildung zu vermeiden:

<code class="cpp">class Measure {
    int         m_N;
    double      m_measure_set[MEASURE_SET_SIZE];
    std::string m_nomefile;
    double      m_T;

public:
    const std::string&amp; nomefile() const { return m_nomefile; }
    ...
};</code>
Nach dem Login kopieren

In diesem Beispiel wurde den Mitgliedsvariablen „m_“ vorangestellt, um Schattenbildung zu vermeiden. Die get-Methode verwendet nun die Mitgliedsvariablen direkt ohne Namenskonflikte.

Fazit

Das Verständnis des Variablenschattens ist entscheidend für das Schreiben von klarem und korrektem C-Code. Die Verwendung von Präfixen oder Suffixen für Mitgliedsvariablen kann dazu beitragen, Verwirrung zu vermeiden und sicherzustellen, dass in verschiedenen Bereichen auf die richtigen Variablen zugegriffen wird.

Das obige ist der detaillierte Inhalt von## Wie kann ich das Shadowing von Variablen in C-Klassen vermeiden?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!