Затенение переменных в C
При определении переменных внутри классов C позволяет использовать переменные с одинаковыми именами в разных областях видимости. Это явление, известное как «затенение переменных», может привести к путанице и неожиданному поведению.
В данном определении класса:
class Measure {
int N;
double measure_set[];
char nomefile[];
double T;
};
переменная-член T будет затенена переменной T, объявленной в методе get:
void Measure::get() {
int M=0;
int nmax=50;
// ...
cout > T;
cout В результате любые изменения, внесенные в T внутри метода get, фактически повлияют на затененную переменную Measure_set[0]. Чтобы устранить эту проблему, рассмотрите возможность использования разных имен переменных или префиксов членов классов, чтобы избежать конфликтов имен:
Различные имена переменных:
class Measure {
int N;
double measure_set[];
char nomefile[];
double temperature; // Rename variable
};
void Measure::get() {
// ...
cout > temperature;
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