「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ## C ++クラスで意図した変数ではなく、温度値が配列に保存されるのはなぜですか?

## C ++クラスで意図した変数ではなく、温度値が配列に保存されるのはなぜですか?

2025-03-22に投稿されました
ブラウズ:286

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

シャドーイング変数

のシャドウイングは、クラス内で定義された変数が外部範囲の変数と同じ名前を持っている場合に発生します。これは、内側の変数が外側の変数よりも優先されるため、予期しない動作につながる可能性があります。 int n; double measure_set []; char nomefile []; ダブルT; 公共: void get(); void printall(); 二重平均(); double thermal_comp(); };

このクラスのGETメソッドは、ファイルから値を読み取り、測定値アレイに保存し、温度値を読み取り、t変数に保存することを目的としています。 cout > nomefile; cout > measure_set [m]; if(f.eof())break; m; } f.close(); n = m 1; cout > t; cout 温度値(t)が、意図したt変数の代わりに測定_setアレイ(mease_set [0])の最初の要素に保存されていることに気付きました。この場合、GETメソッドで宣言されたT変数は、クラスメンバー変数tをシャドウ化します。測定:: get(){ cout > nomefile; cout > measure_set [m]; if(f.eof())break; m; } f.close(); n = m 1; cout >温度; t =温度; cout

スコープ解像度演算子を使用してクラスメンバー変数を明示的に参照すると、

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

    public:
    void get( );
    void printall( );
    double mean( );
    double thermal_comp( );
};
最新のチュートリアル もっと>

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

Copyright© 2022 湘ICP备2022001581号-3