「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C++ クラス メソッドで変数のシャドウイングを回避するにはどうすればよいですか?

C++ クラス メソッドで変数のシャドウイングを回避するにはどうすればよいですか?

2024 年 12 月 22 日に公開
ブラウズ:835

How to Avoid Shadowing Variables in C   Class Methods?

C での変数のシャドウイング

クラス内で変数を定義する場合、C では、同じ名前の変数を異なるスコープで使用することができます。 「シャドウイング変数」として知られるこの現象は、混乱や予期せぬ動作を引き起こす可能性があります。

指定されたクラス定義内:

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

メンバー変数 T は、get メソッドで宣言された変数 T によってシャドウされます:

void Measure::get() {
int M=0;
int nmax=50;

// ...

cout > T;
cout 

別個の変数名:

class Measure { int N; ダブルメジャーセット[]; 文字名ファイル[]; 二重の温度。 // 変数の名前を変更します }; void Measure::get() { // ... cout > 温度; cout class Measure { int N; double measure_set[]; char nomefile[]; double temperature; // Rename variable }; void Measure::get() { // ... cout > temperature; cout クラス メンバー プレフィックス:

クラス メジャー { int m_N; ダブル m_measureSet[]; std::string m_nomefile; ダブルm_T; }; void Measure::get() { // ... cout >m_T; cout class Measure { int m_N; double m_measureSet[]; std::string m_nomefile; double m_T; }; void Measure::get() { // ... cout > m_T; cout
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3