Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тип auto в C++11, А зачем он вообще нужен? 
:(
    Опции темы
codemonkeys
Дата 17.10.2013, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.10.2013

Репутация: нет
Всего: нет



Зачем программистов С++11 заставляют писать auto, если надо автоматически определить тип? 
Почему не сделано как на BASIC и многих других языках, где объявление переменных не обязательно?
PM MAIL   Вверх
borisbn
Дата 17.10.2013, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(codemonkeys @  17.10.2013,  11:19 Найти цитируемый пост)
Почему не сделано как на BASIC и многих других языках, где объявление переменных не обязательно? 

Очивидно же... Чтобы уменьшить число ошибок, связанных с опечатками.
Код
max_l = 0;
for ( i = 0; i < 100; ii = i + 1 ) {    // <----- раз
    if ( arr[ i ] > max_l ) {
        max_1 = arr[ i ];            // <--- два
    }
}


Цитата(codemonkeys @  17.10.2013,  11:19 Найти цитируемый пост)
Зачем программистов С++11 заставляют писать auto, если надо автоматически определить тип? 

Никто никого не заставляет. Просто
1) В некоторых случаях (не везде) это - удобнее
2) Переменная по прежнему имеет жёстко определённый тип (правда, определённый не программистом, а компилятором)
3) Есть случаи, когда без него не обойтись 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
o2n3e
Дата 17.10.2013, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 19.8.2011

Репутация: -4
Всего: -5




Модератор: Сообщение скрыто.

PM MAIL   Вверх
codemonkeys
Дата 17.10.2013, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.10.2013

Репутация: нет
Всего: нет



Цитата(o2n3e @ 17.10.2013,  11:43)
Наверное потому, что это не языки, а мёртворожденное ###, которое ниначто не способно?

А PHP, на котором написан (то есть разработан) весь интернет,тоже г****?
А Visual Basic? 

Это сообщение отредактировал(а) codemonkeys - 17.10.2013, 11:50
PM MAIL   Вверх
akizelokro
Дата 17.10.2013, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



Цитата(codemonkeys @  17.10.2013,  11:19 Найти цитируемый пост)
Почему не сделано как на BASIC и многих других языках, где объявление переменных не обязательно? 


Для совместимости с С.
Если же убирать совместимость с С, то останется один из многочисленных языков программирования. Притом с непонятными перспективами.



--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
codemonkeys
Дата 17.10.2013, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.10.2013

Репутация: нет
Всего: нет



Цитата(akizelokro @ 17.10.2013,  11:54)
Для совместимости с С.

А совместимости и так нет
Любимая всеми конструкция
Код

for(int i=0;i<3;++i)

не соберется в С, т.к. все переменные в С должны быть объявлены в начале функции.
PM MAIL   Вверх
o2n3e
Дата 17.10.2013, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 19.8.2011

Репутация: -4
Всего: -5




Модератор: Сообщение скрыто.

PM MAIL   Вверх
o2n3e
Дата 17.10.2013, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 19.8.2011

Репутация: -4
Всего: -5




Модератор: Сообщение скрыто.

PM MAIL   Вверх
o2n3e
Дата 17.10.2013, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 19.8.2011

Репутация: -4
Всего: -5




Модератор: Сообщение скрыто.

PM MAIL   Вверх
akizelokro
Дата 17.10.2013, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



Цитата(codemonkeys @  17.10.2013,  11:57 Найти цитируемый пост)
не соберется в С, т.к. все переменные в С должны быть объявлены в начале функции. 


Ну, это-то да, обратной совместимости нет. Да и если брать стандарт С99, тоже не уверен, что на 100% прямая совместимость.
Но тут фича в том, что всё равно С/C++ приходится портировать с платформы на платформу и докручивать вручную. Так что некоторые различия на практике роли и не играют даже. Традиция уже не обращать внимания.


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
o2n3e
Дата 17.10.2013, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 19.8.2011

Репутация: -4
Всего: -5




Модератор: Сообщение скрыто.

PM MAIL   Вверх
o2n3e
Дата 17.10.2013, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 19.8.2011

Репутация: -4
Всего: -5




Модератор: Сообщение скрыто.

PM MAIL   Вверх
codemonkeys
Дата 17.10.2013, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.10.2013

Репутация: нет
Всего: нет



Цитата(o2n3e @ 17.10.2013,  12:03)
Пхп - это тормазное, неконпелириуемое изимодное ###, которое в ряд с С++ поставит только идиот.

Будущее за интерпретируемыми языками, что нам успешно показывает Microsoft. 
PHP устарел, но на смену ему приходят другие интерпретируемые языки.
Всё компилируемое лет через 10 окончательно отправится в мусорку. 
На всех продвинутых серверах и на смартфонах уже сейчас аппаратная поддержка Java, без всяких компиляций в байт-код и виртуальных машин.

Это сообщение отредактировал(а) codemonkeys - 17.10.2013, 12:28
PM MAIL   Вверх
o2n3e
Дата 17.10.2013, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 19.8.2011

Репутация: -4
Всего: -5




Модератор: Сообщение скрыто.

PM MAIL   Вверх
vinter
Дата 17.10.2013, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата

Будущее за интерпретируемыми языками, что нам успешно показывает Microsoft. 

Разрабатывая своё новое API на C++? Я что-то не понял, с каких пор Microsoft является движителем победы интерпретируемых языков?


--------------------
Мой блог
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0839 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.