Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Van111
211 / 190 / 22
Регистрация: 03.08.2011
Сообщений: 2,648
Записей в блоге: 12
#1

испортился компилятор посмотрите - C++

16.10.2011, 13:04. Просмотров 1496. Ответов 24
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// 1.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
 
int main(int argc, char* argv[])
{
    for (int i=1;i<10;i++)
    {}
int i=1;
 
    return 0;
}
выводит ошибку
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(10) : error C2374: 'i' : redefinition; multiple initialization
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(8) : see declaration of 'i'

а раньше всё было нормально что делать помогите пожалуйста

Добавлено через 7 минут
компилятор mv c++ 6 (MVS 6 обрезаный)
http://www.cyberforum.ru/cpp/thread272630.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 13:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос испортился компилятор посмотрите (C++):

Просто посмотрите!
Ув. дамы и госопода просьба к вам которые знают и могут помочь в задачках....

Посмотрите код
Помогите разобраться, пишу программу на С++. Вот код: app.cpp #include...

посмотрите код
Добавлено через 5 минут и еще, не подскажнте, как сделать так, чтоб работал...

Посмотрите код
Всем доброго времени суток. Вот написал програмку, которая считает сумму...

Посмотрите сюда
Помогите, чем можете) Переделать, чтобы работала в Borland C++ 3.11 В...

24
Jupiter
16.10.2011, 13:04
  #2

Не по теме:

Цитата Сообщение от Van111 Посмотреть сообщение
испортился компилятор
Цитата Сообщение от Van111 Посмотреть сообщение
mv c++ 6 (MVS 6 обрезаный)
срок годности истек

2
Van111
211 / 190 / 22
Регистрация: 03.08.2011
Сообщений: 2,648
Записей в блоге: 12
16.10.2011, 13:06  [ТС] #3
я его недавно переустановил перед этим делал восстановление системы
0
Wanderer1
23 / 23 / 11
Регистрация: 26.03.2011
Сообщений: 54
16.10.2011, 13:20 #4
не испортился ничего. два раза объявлять переменную нельзя. иногда можно ошибку прочесть если не сразу понятно
0
Van111
211 / 190 / 22
Регистрация: 03.08.2011
Сообщений: 2,648
Записей в блоге: 12
16.10.2011, 14:02  [ТС] #5
так на дев с++ всё работает и раньше на mvc++ 6 работало а щас перестало
0
amor1k
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
16.10.2011, 14:08 #6
Все равно попробуйте изменить строку 7 на

C++
1
i=1;
И если не заработает, объявите переменную i в начале main.
1
alkagolik
Заблокирован
16.10.2011, 14:12 #7
Van111,
C++
1
2
3
4
5
for (int i=1;i<10;i++)// i находится в пространстве имен функции for()
{}
int i=1;// i находится в пространстве имен функции main()
// пространство имен функции for() выделяется из пространства имен функции main() 
// в итоге декларируется два статуса для одного адреса
1
MrGluck
Модератор
Эксперт CЭксперт С++
7981 / 4862 / 1423
Регистрация: 29.11.2010
Сообщений: 13,237
16.10.2011, 14:15 #8
А на Dev 4.9.9.2 запустилось оО Странно.

Результат вывода i на экран: 1234567891. По моему он параметр цикла уничтожает после его обхода.

А вобще нельзя такого делать.
0
alkagolik
Заблокирован
16.10.2011, 14:16 #9
формально ошибки нет, почему нельзя? просто как видно, не каждый компилятор ест.
0
Van111
211 / 190 / 22
Регистрация: 03.08.2011
Сообщений: 2,648
Записей в блоге: 12
16.10.2011, 14:17  [ТС] #10
а на mv c++ 6 намного код лучше компилирует чем dev c++
а то я думаю может на дев перейти
0
MrGluck
Модератор
Эксперт CЭксперт С++
7981 / 4862 / 1423
Регистрация: 29.11.2010
Сообщений: 13,237
16.10.2011, 14:21 #11
Цитата Сообщение от alkagolik Посмотреть сообщение
формально ошибки нет, почему нельзя? просто как видно, не каждый компилятор ест.
Ну например задачу может прийдется показывать на других компьютерах, на которых есть только VS (как обычно и бывает), а там объясняй что у тебя дома все работает, а тут "машина - дура".
0
Wanderer1
23 / 23 / 11
Регистрация: 26.03.2011
Сообщений: 54
16.10.2011, 14:27 #12
Цитата Сообщение от MrGluck Посмотреть сообщение
Ну например задачу может прийдется показывать на других компьютерах, на которых есть только VS (как обычно и бывает), а там объясняй что у тебя дома все работает, а тут "машина - дура".
оказывается и на VS тоже работает, проверил. я сначала подумал, что такое реально нельзя делать
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 14:29 #13
Эта ошибка в vc6 была очень известна в своё время. В gcc (которым пользуется DevC++) она отсутствует. Поработайте с vc6, вы ещё много интересного о ней узнаете.

Добавлено через 1 минуту
испортился компилятор

Не по теме:

В холодильнике хранили? Если нет - то понятно, в чём дело.

1
alkagolik
Заблокирован
16.10.2011, 14:29 #14
MrGluck, не машина, а реализация работы машины "человеками". кто виноват в том что
есть только VS (как обычно и бывает)
конечно надо учитывать особенности компилятора, никто и не спорит Страуструпп этому прямо учит. Но в том что в большинстве случаев стоит VS... кто-то же ее туда поставил, верно? Отсюда и уровень. Нельзя от компьютерщика скрывать работу компьютера, я за правку конфигов руками ))
0
kravam
быдлокодер
1706 / 893 / 105
Регистрация: 04.06.2008
Сообщений: 5,524
16.10.2011, 14:30 #15
Цитата Сообщение от MrGluck Посмотреть сообщение
Ну например задачу может прийдется показывать на других компьютерах, на которых есть только VS (как обычно и бывает), а там объясняй что у тебя дома все работает, а тут "машина - дура".
объяснишь не ты первый, не ты последний.
http://www.cyberforum.ru/cpp-beginners/thread299488.html
0
alkagolik
Заблокирован
16.10.2011, 14:37 #16
как вам такой фокус?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main(){
 
    for (int i = 0; i < 10; ++i)
    {
 
    }
    int i = 10;
 
    for (int i = 0; i < 3; ++i)
    {
        for (int i /*объявлена но к ней обратиться не получится*/ = 0; i < 3; ++i)
            std::cout << i << ' '<< i << std::endl;
    }
    std::cout << i << ' ' << std::endl;
 
    return 0;
}
1
Bers
Заблокирован
16.10.2011, 14:53 #17
Так то понятно - не хочешь проблем, пиши православный (потенциально безопасный) код.
Но все таки интересно, что об этом нюансе говорит стандарт языка?
0
kravam
быдлокодер
1706 / 893 / 105
Регистрация: 04.06.2008
Сообщений: 5,524
16.10.2011, 15:40 #18
Лучший ответ Сообщение было отмечено как решение

Решение

Оно?
If the for-init-statement is a declaration, the scope of the name(s) declared extends to the end of the for-
statement. [ Example:
int i = 42;
int a[10];
for (int i = 0; i < 10; i++)
a[i] = i;
int j = i; // j = 42
- end example ]


пункт 6.5.3, сдуто с черновика принятого недавно стандарта.
4
Сыроежка
Заблокирован
16.10.2011, 17:50 #19
Цитата Сообщение от Van111 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// 1.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
 
int main(int argc, char* argv[])
{
    for (int i=1;i<10;i++)
    {}
int i=1;
 
    return 0;
}
выводит ошибку
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(10) : error C2374: 'i' : redefinition; multiple initialization
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(8) : see declaration of 'i'

а раньше всё было нормально что делать помогите пожалуйста

Добавлено через 7 минут
компилятор mv c++ 6 (MVS 6 обрезаный)
Если вы имеет дело с версией MVC++ 6, то переменные, объявленные в цикле, имеют область видимости тот внешний блок, в котором имеется предложение цикла. То есть после выхода из цикла, переменная продолжает "жить". Это естественно не соответствует стандарту С++ 2003, но тем не менее в те времена, когда появилась 6 вресия, стандарт С++ 2003 еще не был полностью реализован в компиляторах.

Поэтому компилятор вам правильно говорит о существовании ошибки, то есть в одной и той же области объявлений он встречает переопределение идентификатора.

Вам следует порльзоваться более современными компиляторами.
0
Van111
211 / 190 / 22
Регистрация: 03.08.2011
Сообщений: 2,648
Записей в блоге: 12
16.10.2011, 18:54  [ТС] #20
а вот ещё одно предположение проблемы у меня после восстановления системы включилась автоматическая обновление ОС (а в неё входили net fraemwork и redistributable) я так думаю что они могли обновился и изменить mv c++ 6 щас она у меня вообще глючить стала.
из за этого могли начаться проблемы????????????????
P.S. я ещё дров на устанавливал стандартных
0
16.10.2011, 18:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2011, 18:54
Привет! Вот еще темы с решениями:

Посмотрите на программу
1. Описать структуру с именем AEROFLOT, содержащую следующие поля: -название...

Посмотрите програму
Народ помогите пожалуйста. Програмку до утра надо написать а сам чет вообще не...

Посмотрите сюда
Помогите пожалуйста. Что нужно: 1.Создать проект, который включает...

я новенький....посмотрите..
Описать процедуру TimeToHMS(T, H, M, S), определяющую по времени T (в секундах)...


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

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru