Модераторы: 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   Вверх
codemonkeys
Дата 17.10.2013, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Компилируются сейчас фактически только С и плюсы.
Паскаль умер, другие компилируемые языки умерли когда я еще не родился. 
С и плюсы скоро тоже умрут, С++11 - первый шаг к этому.
PM MAIL   Вверх
vinter
Дата 17.10.2013, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


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

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



Цитата(codemonkeys @  17.10.2013,  14:20 Найти цитируемый пост)
Компилируются сейчас фактически только С и плюсы.

А также C#, Java и Objective C. Что, если еще добавить C\C++, составляет не менее 90-98%(я полагаю) всей кодобазы. Так что "смерть" компилируемых языков может быть только в твоих фантазиях, не более.

Добавлено через 1 минуту и 39 секунд
Более того, Facebook и Vkontakte пишут обвязки, чтобы транслировать PHP в C++, наверное они это делают от того, чтобы ускорить смерть C++ ;)


--------------------
Мой блог
PM MAIL WWW   Вверх
codemonkeys
Дата 17.10.2013, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(vinter @ 17.10.2013,  13:24)
Цитата(codemonkeys @  17.10.2013,  14:20 Найти цитируемый пост)
Компилируются сейчас фактически только С и плюсы.

А также C#, Java и Objective C

Они компилируются в байт-код, который затем интерпретируется. Их нельзя назвать полноценными компилируемыми языками.
Аpple со своим Objective C скоро умрет. 
До многих богатых обезьян, которые покупали Apple сейчас дошло, что любая китайская мобила выполняет все функции айфона 5 и даже больше. 
Китайские экземпляры в золотом корпусе с яблоком тоже имеются, и обезьяна скорее купит их.
 

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


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



codemonkeys, ты что-то путаешь: http://ru.wikipedia.org/wiki/%D0%98%D0%BD%...%BD%D0%B8%D1%8F

Objective C - это компилируемый язык. C#, на сколько я знаю, компилируется из байт-кода в момент установки приложения (могу ошибаться). Да и Java - это тоже скорей компилируемый язык.

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


Новичок



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

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




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

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


Новичок



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

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




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

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.1726 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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