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

Устаревшие стандарты - C++

Восстановить пароль Регистрация
 
Страус
 Аватар для Страус
12 / 1 / 1
Регистрация: 15.04.2012
Сообщений: 26
02.02.2013, 23:17     Устаревшие стандарты #1
Всем доброго вечера!

В ходе пятидневного экспресс-обучения С++ столкнулась с проблемой, которую нужно решить в самые краткие сроки, а именно сегодня, так как завтра уже судный день.
В моём наличии учебное пособие, датированное 2003 годом, поэтому синтаксис многого - особенно директив препроцессора, ух и намучилась я с ними! - устаревший.
Я понимаю, что не вполне корректно формулирую просьбу, но прошу по возможности рассказать об изменениях синтаксиса самых ходовых функций в последнее время - путём самостоятельного поиска мне удалось найти очень немного.
Буду очень вам признательна!

Ну, к примеру, вместо
C++
1
#include <iostream.h>
вот это
C++
1
2
#include <iostream>
using namespace std;
И вместо
C++
1
ifstream fin("in.txt", ios::in||ios::nocreate);
это
C++
1
ifstream fin("in.txt");
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,361
Записей в блоге: 4
02.02.2013, 23:26     Устаревшие стандарты #2
А это не обновление синтаксиса, это немного разная организация обращений к библиотекам. Современные компиляторы (уж больше десяти лет) допускают все эти варианты. Вот лет 15 назад заголовочных файлов без буквы h не было. И namespace не поддерживались.
Страус
 Аватар для Страус
12 / 1 / 1
Регистрация: 15.04.2012
Сообщений: 26
02.02.2013, 23:30  [ТС]     Устаревшие стандарты #3
Цитата Сообщение от palva Посмотреть сообщение
Современные компиляторы (уж больше десяти лет) допускают все эти варианты.
Это, конечно, очень здорово, но у меня и Visual Studio 2010, и Dev-C++ (4.9, что ли) ругаются на разные варианты и принимают только вторые.
Мне завтра зачёт сдавать по структурному программированию, на С++ пишу впервые, а что там за ИСР стоят, мне неизвестно. Вот и боюсь на такой ерундистике застопориться.
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,361
Записей в блоге: 4
02.02.2013, 23:50     Устаревшие стандарты #4
Цитата Сообщение от Страус Посмотреть сообщение
ругаются на разные варианты и принимают только вторые
И в самом деле Когда-то я стал придерживаться рекомендации использовать второй вариант и был не в курсе, что первый вариант уже не возможен. Но сишные заголовки, скажем, stdio.h и прочие можно подключать и так:
C++
1
2
3
4
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
Короче, не заморачивайтесь, если не будет работать так, попробуйте иначе. Не думаю, что к вам будут из-за этого претензии. В заголовочных файлах до сих пор наблюдается разнобой.
Страус
 Аватар для Страус
12 / 1 / 1
Регистрация: 15.04.2012
Сообщений: 26
03.02.2013, 00:04  [ТС]     Устаревшие стандарты #5
palva, Будем надеяться, что проверяющая программа войдёт в положение
Приятного остатка вечера и ночи, спасибо за помощь.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
03.02.2013, 04:19     Устаревшие стандарты #6
C++
1
#include <iostream.h>
Данный хедер содержит объекты cout и cin, которые находятся в глобальном пространстве имен, но после стандарт решил перенести их в namespace std; и возник хедер <iostream>
то бишь
::cin и ::cout превратились в std::cin и std::cout
На момент написания книги о пространствах имен не было ничего известно, отсюда и старый стиль.
Вы можете столкнуться с требованием использовать первый вариант сейчас лишь на борланде, VS и mingw (входящий в состав dev-cpp) уже про пространство имен наслышаны.
Yandex
Объявления
03.02.2013, 04:19     Устаревшие стандарты
Ответ Создать тему
Опции темы

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