Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Etudiante
0 / 0 / 0
Регистрация: 12.04.2009
Сообщений: 47
#1

две переменные с одинаковым именем - C++

16.07.2009, 15:33. Просмотров 1795. Ответов 24
Метки нет (Все метки)

Вопрос скорее теоретический:

Использую Visual C++ , запускаю debug и в окошечке переменных вижу, например, две переменные с именем i. Возникает такая ситуация, если в коде встречается несколько циклов типа for(int i = 0; ...). Причем, например, если цикл двойной, то вторая переменная не дублируется (по крайней мере, не всегда). Можно конечно для каждого цикла называть переменный по разному, но ведь по и идее они на то и локальные, чтобы не было конфликтов? Есть ли смысл с этим бороться? Если да, то как? Может ли хотя бы теоретически случится, что эти переменные перепутаются?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2009, 15:33     две переменные с одинаковым именем
Посмотрите здесь:

C++ Как сравнить две переменные string
C++ Даны две переменные целого типа: A и B.
fputs и две переменные C++
Виртуальные функции с одинаковым именем и разным набором аргументов C++
Напишите функцию, которая получает две переменные целого типа C++
C++ Напишите функцию, которая получает две переменные целого типа: A и B
C++ Напишите функцию, которая получает две переменные целого типа: A и B
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexandoros
227 / 65 / 4
Регистрация: 02.06.2009
Сообщений: 280
17.07.2009, 14:04     две переменные с одинаковым именем #21
Цитата Сообщение от zim22 Посмотреть сообщение
нигде не было сказано, что значение счётчика (не итератора как вы употребляете) должно где-то использоваться вне цикла.
Этот комент чистой воды игра слов, ни смысловой ни полезной нагрузки.


Цитата Сообщение от zim22 Посмотреть сообщение
откуда такие сведения, что под VS 6.0 проектов "дофига"? все проекты уже давно переписаны минимум под 2003 студию.
Из собственного опыта. Если у европейских заказчиков куплена студия 6, то они абсолютно не спешат покупать что-то новое, тем более, если все их проекты прекрасно работают.

Цитата Сообщение от zim22 Посмотреть сообщение
к сожалению вы не понимаете о чём говорите. может быть через какое-то время вы перерастёте этот этап "ребячества" и поймёте, какие глупости вы говорили.
дальнейшие нравоучения считаю бесполезными.
Опять вода.

Я давно коммерчески программирую, и я советую практику, а не полет мысли теоретичского художника.
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
20.07.2009, 21:05     две переменные с одинаковым именем #22
Не все компиляторы схавают. Например, студия 6, не скомпилирует такой код ( а проектов под неё еще дофига).
Visual Studio 6 вообще не соблюдает стандарты C++, так что если она что-то там не скопилирует - не страшно.

2Alexandoros, 2zim22: Вы уже от темы отклоняетесь ...
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
20.07.2009, 23:29     две переменные с одинаковым именем #23
Цитата Сообщение от zim22 Посмотреть сообщение
я сообщу Microsoft о баге.

Не по теме:

Хоть кто-то делает полезное дело. Уважаю !

Monte-Cristo
21.07.2009, 00:29
  #24

Не по теме:

odip, а ты мне покажи компилятор C++ массовго распространения который бы их соблюдал? Таковых нет... Наиболее близок к стандарту gcc (на мое imho).. Но при разработки проектов в интегрированных средах разработки (аля VS, Builder) отклонение от стандарта облегчает процесс написание программы учитывая специфику среды разработки.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2009, 09:02     две переменные с одинаковым именем
Еще ссылки по теме:

Считывание из бинарного файла и запись данных в две строковых переменные C++
Нужно сравнить две переменные типа string C++
C++ Нужно приравнять две переменные
Задание нескольких #region с одинаковым именем. Нормально ли это? C++
C++ Не меняются местами две переменные

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
21.07.2009, 09:02     две переменные с одинаковым именем #25
как оказалось, это не баг, а фича.
вот ссылка на полное описание
Hello,

Thank you for taking the time to report this. The behavior you are seeing is the result of the way the compiler is designed, and not an actual bug. The compiler moves loop control variables into the enclosing scope for debugging purposes so they can be inspected even after execution has passed the termination point of the loop. So in the example you provided, both i's and j's are still in existence for debugging purposes for the reminder of the body of "main()" once they have been declared.

Best Regards,
Andrew Hall
Visual Studio Debugger
Yandex
Объявления
21.07.2009, 09:02     две переменные с одинаковым именем
Ответ Создать тему
Опции темы

Текущее время: 21:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru