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

C++

Войти
Регистрация
Восстановить пароль
 
Morris
15 / 4 / 1
Регистрация: 01.12.2010
Сообщений: 157
#1

Нужно разобраться с средой разработкой для C++ - C++

07.03.2014, 03:49. Просмотров 624. Ответов 17
Метки нет (Все метки)

Привет Всем !

Если я не ошибаюсь то с .NET 2003 (VS 7.1) шапки языка C++ немного изменился, и разница была следующая:

1. до:
#include <iostream.h>
void main(void) ...... и т.д...

2. после:
#include <iostream>
using namespace std:
void main(void)........ и т.д...




В чем разница между до и после?
У меня есть Visual Studio 2013 Ultimate и он выкидывает ошибки если идти по первой версии, но если по второй то все ОК.

Как мне настроить Visual Studio 2013 что бы работал и первый вариант?


Огромное Спасибо !!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,940
Завершенные тесты: 1
07.03.2014, 07:19     Нужно разобраться с средой разработкой для C++ #2
using namespace std: это просто использование пространства имен. Если хочешь убрать эту строку, то нужно везде где используются имена из этого пространства имен, добавить например std::
ValeryS
Модератор
6446 / 4912 / 451
Регистрация: 14.02.2011
Сообщений: 16,283
07.03.2014, 07:48     Нужно разобраться с средой разработкой для C++ #3
Цитата Сообщение от Morris Посмотреть сообщение
void main(void) ...... и т.д...
int main
Morris
15 / 4 / 1
Регистрация: 01.12.2010
Сообщений: 157
07.03.2014, 08:39  [ТС]     Нужно разобраться с средой разработкой для C++ #4
Цитата Сообщение от solar_wind Посмотреть сообщение
using namespace std: это просто использование
Да.. это я знаю, только почему в древних версиях возможно было писать код, а в более новых мы обязаны вводить пространство имен?
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,940
Завершенные тесты: 1
07.03.2014, 08:40     Нужно разобраться с средой разработкой для C++ #5
Morris, Ну возможно это пространство имен было просто прописано в другом месте.
ValeryS
Модератор
6446 / 4912 / 451
Регистрация: 14.02.2011
Сообщений: 16,283
07.03.2014, 08:46     Нужно разобраться с средой разработкой для C++ #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Morris Посмотреть сообщение
Да.. это я знаю, только почему в древних версиях возможно было писать код, а в более новых мы обязаны вводить пространство имен?
потому что изменился стандарт
а стандарт изменился потому что слишком много сущностей появилась в языке
и стала возможна колизия имен
вот и разбили их по группам

никто не мешает создать свой файл-заглушку
iostream.h
C++
1
2
#include <iostream>
 using namespace std:
и писать по старому
но будь готов к тому что программы будут не переносимы
Morris
15 / 4 / 1
Регистрация: 01.12.2010
Сообщений: 157
07.03.2014, 08:53  [ТС]     Нужно разобраться с средой разработкой для C++ #7
Цитата Сообщение от ValeryS Посмотреть сообщение
но будь готов к тому что программы будут не переносимы
Скажите пожалуйста. Возможно ли и сейчас в новых средах разработки использовать старый подход?

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


Огромное Спасибо!
ValeryS
Модератор
6446 / 4912 / 451
Регистрация: 14.02.2011
Сообщений: 16,283
07.03.2014, 08:55     Нужно разобраться с средой разработкой для C++ #8
Цитата Сообщение от Morris Посмотреть сообщение
Возможно ли и сейчас в новых средах разработки использовать старый подход?
а я что тебе показал?
Цитата Сообщение от ValeryS Посмотреть сообщение
iostream.h
C++
1
2
#include <iostream>
 using namespace std:
но делать это рекомендуется только когда перекомпилируешь старые исходники

в новых лучше приучатся работать по стандарту
Morris
15 / 4 / 1
Регистрация: 01.12.2010
Сообщений: 157
07.03.2014, 09:54  [ТС]     Нужно разобраться с средой разработкой для C++ #9
У меня есть довольно старые, но очень хорошие учебники по C++, и там код написан по древнему виду, как: #include <iostream.h>. Эти учебники в области разработки STL, для компьютерной геометрии.

Значит смело можно изменять код с <iostream.h> на <iostream> и все будет хорошо работать в дальнейшем, верно?
ValeryS
Модератор
6446 / 4912 / 451
Регистрация: 14.02.2011
Сообщений: 16,283
07.03.2014, 10:02     Нужно разобраться с средой разработкой для C++ #10
Цитата Сообщение от Morris Посмотреть сообщение
Значит смело можно изменять код с <iostream.h> на <iostream> и все будет хорошо работать в дальнейшем, верно?
не совсем

значит нужно включать <iostream> и подключить область видимости
но могут быть и другие косяки нужно проверять каждую строчку
например на память
в 6 работало в современных нет
C++
1
2
3
4
5
6
7
8
for( int i=0; i<n;i++)
 {
 // вот здесь   i видна и в новых и в старых
}
// вот здесь  i видна  только в старых, в новых выходит за область видимости
for(  i=0; i<n;i++)// соответственно в новых это не пройдет, будет не объявленная переменная
 {
  }
писать нужно так

C++
1
2
3
4
5
6
7
8
for( int i=0; i<n;i++)
 {
.............................
}
for( int i=0; i<n;i++)// в новых отработает нормально, в старых ошибка дважды объявленная
 {
.......................................
}
Morris
15 / 4 / 1
Регистрация: 01.12.2010
Сообщений: 157
07.03.2014, 10:23  [ТС]     Нужно разобраться с средой разработкой для C++ #11
То, что нужно будет еще и добавить в шапочке using namespace std; это я знаю.

Ясно, и спасибо за пример .

Для меня самое главное то, чтобы я писал четко по стандарту ISO, и что это не микрософтовская фишка.... .NET .

Извините что вас засыпал вопросами просто видать вы совсем неплохо понимаете язык !

И еще последний вопрос:
На протяжении изучении языка я хочу четко прикладываться к учебникам. И поскольку есть небольшие, но очень важные нюансы мне бы хотелось узнать как я могу настроить VS2013 ultimate под старый вид (<iostream.h>), или если это сделать не возможно, то что вы мне можете посоветовать по поводу компилятора?
знаю что есть такие как:
Intel Parallel Studio XE
Builder C++
Eclipse C++
ValeryS
Модератор
6446 / 4912 / 451
Регистрация: 14.02.2011
Сообщений: 16,283
07.03.2014, 10:30     Нужно разобраться с средой разработкой для C++ #12
Цитата Сообщение от Morris Посмотреть сообщение
но очень важные нюансы мне бы хотелось узнать как я могу настроить VS2013 ultimate под старый вид (<iostream.h>),
я с ним не работал
у меня 2008 вот его настроить не возможно
это уже требования стандарта

найди на просторах интернета стандарт и изучи

сейчас появился новый стандарт 11, с ним я тоже не работал, но там много что вообще по другому, так VS2013 вроде его поддерживает
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
07.03.2014, 13:01     Нужно разобраться с средой разработкой для C++ #13
Цитата Сообщение от Morris Посмотреть сообщение
мне бы хотелось узнать как я могу настроить VS2013 ultimate под старый вид (<iostream.h>),
Не надо этого делать. Во многих средах разработки этого файла вообще может не быть. А использование его совместно с новыми средствами может приводить к ошибкам.
И книжки старые, даже если они хорошие, лучше обновить. Либо найти более новые издания этих же, либо сменить авторов. Проблем потом не оберетесь. Зачем приучаться к способам, которыми сейчас никто не пользуется (а зачастую они бывают вредны в современных условиях)?
ValeryS
Модератор
6446 / 4912 / 451
Регистрация: 14.02.2011
Сообщений: 16,283
07.03.2014, 16:05     Нужно разобраться с средой разработкой для C++ #14
Цитата Сообщение от DrOffset Посмотреть сообщение
Во многих средах разработки этого файла вообще может не быть.
еще раз повторю
Цитата Сообщение от ValeryS Посмотреть сообщение
никто не мешает создать свой файл-заглушку
iostream.h
C++
1
2
#include <iostream>
using namespace std:
сам напишешь этот файл, разумеется в новых компиляторах его нет

если у тебя есть старые исходники и их нужно скомпилить на новом компиляторе
то это самый простой путь

разумеется "с нуля" писать с такими костылями не рекомендуется

Добавлено через 2 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
И книжки старые, даже если они хорошие, лучше обновить. Либо найти более новые издания этих же, либо сменить авторов.
А как насчет переосмыслить код и написать заново с новыми требованиями
Книги тем и хороши что там есть методика и алгоритмы, а не голые листинги
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
07.03.2014, 17:24     Нужно разобраться с средой разработкой для C++ #15
Цитата Сообщение от ValeryS Посмотреть сообщение
А как насчет переосмыслить код и написать заново с новыми требованиями
Чтобы переосмыслить - надо знать что именно следует переосмыслить. Хорошо рассуждать с высоты опыта, а когда ты в самом начале пути, очень трудно выбрать верное направление. А книги, которые советует не то, могут усугубить ситуацию.
Цитата Сообщение от ValeryS Посмотреть сообщение
разумеется "с нуля" писать с такими костылями не рекомендуется
Разве здесь как раз не эта ситуация?

Добавлено через 20 минут
Старые книги, зачастую грешат ручной микрооптимизацией. Чрезмерным акцентированием внимания на этом. Создается впечатление, что это нужно делать всегда.
Или, например, встречаются утверждения или примеры не соответствующие современным условиям безопасного кода. Увлечения преобразованиями типов, тотальный ручной контроль ресурсов, вместо использования RAII, обилие макросов и неуделение внимания разнице между ними и кодом на С++.
Кроме этого в таких книгах, в силу их возраста, вообще могут отсутствовать разделы о многих возможностях современного С++, и это не обязательно какие-то хитрые и малоиспользуемые конструкции.

У меня лежит одна такая книга, 98 года издания. Там, например, советуют использовать ключевое слово register для счетчика цикла или рассказывают о том, что результат new нужно проверять на ноль. Книга хорошая в своей основе (написана хорошо, и для 98 года очень актуально), но все эти мелочи потом аукнутся, если не иметь источника для проверки этих сведений.
ValeryS
Модератор
6446 / 4912 / 451
Регистрация: 14.02.2011
Сообщений: 16,283
07.03.2014, 18:21     Нужно разобраться с средой разработкой для C++ #16
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от DrOffset Посмотреть сообщение
Хорошо рассуждать с высоты опыта,
да, есть за мной такой грешок
Цитата Сообщение от DrOffset Посмотреть сообщение
Старые книги, зачастую грешат ручной микрооптимизацией. Чрезмерным акцентированием внимания на этом.
ну это смотря что за книги
например Все книги по конкретным средам программирования как то Борланд Си 3.0 или МАСМ 4.0
мною собраны и отнесены в самый дальний угол, выбросить как то рука не поднимается
а вот есть серия книг про машинную графику Л. Аммерал периодически перечитываю
есть куча алгоритмов для двумерной и трехмерной графики матрицы, векторы( не контейнеры)
да и знаменитую Петцольд Ч. "Программирование для Windows 95"
нет нет да открою

так что
Цитата Сообщение от DrOffset Посмотреть сообщение
И книжки старые, даже если они хорошие, лучше обновить. Либо найти более новые издания этих же, либо сменить авторов.
не совсем согласен
иногда просто нет других изданий или авторов
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
07.03.2014, 18:28     Нужно разобраться с средой разработкой для C++ #17
ValeryS, ну мы в разделе по С++, я говорил про книги по языку. Язык и подходы развиваются и старые способы могут быть вредны на новой почве. Их изучить можно и потом, когда будет на что опереться. Но есть материал, который, может быть устарел морально, но не предметно. Например в силу того, что программная и аппаратная платформа, по которой написана книга, более не применяется - это совсем другое дело. Читая такую книгу нельзя принести вред, потому что информация там не противоречит современным условиям. Ты собственно привел примеры из такой категории, которую я даже не имел в виду
Есть такое понятие, которое четко описывает, эту категорию - "классика". Вот, например, Достоевский - это классика, читать его можно в любом веке. А словарь русского языка - нет, его надо обновлять, иначе пользуясь изданием 1905 года, мы сможем составить неправильное впечатление о языке. Надеюсь эта аналогия четко пояснит что я имею в виду.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2014, 04:44     Нужно разобраться с средой разработкой для C++
Еще ссылки по теме:

C++ Нужно разобраться в коде
C++ Нужно разобраться в программе (конструкторы)
Нужно разобраться с кодом C++
C++ Нужно разобраться с циклом if
C++ Нужно разобраться с указателями

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

Или воспользуйтесь поиском по форуму:
Morris
15 / 4 / 1
Регистрация: 01.12.2010
Сообщений: 157
10.03.2014, 04:44  [ТС]     Нужно разобраться с средой разработкой для C++ #18
В моем конкретном случае речь идет о виде программирования векторной графике. К нему я и собираюсь приложить C++.
Речь не совсем о технологическом, а о научном виде программирования.
Книги которые у меня имеются на разных языках и есть еще темы из лекции и все они имеют вид <iostream.h>, <vector.h> и т.д.
Поэтому я и хотел получить четкое направление чтобы окунувшись в глубь языка не возникали проблемы в области технологии.
Например: можно ли вызвать код в библиотеку .NET, интегрируется ли с C# или с VB, это мне не совсем интересно.
Поскольку я выбрал узкую специализацию и владею не плохой библиотекой для изучения данной темы хочу по благодарить о вас о помощи.

Спасибо за помощь!

Добавлено через 2 часа 40 минут
Цитата Сообщение от Morris Посмотреть сообщение
Поскольку я выбрал узкую специализацию и владею не плохой библиотекой для изучения данной темы хочу по благодарить о вас о помощи.
Спасибо за помощь!
Поскольку я выбрал узкую специализацию и владею не плохой библиотекой для изучения данной темы.

Хочу поблагодарить вас.

Спасибо за помощь!
Yandex
Объявления
10.03.2014, 04:44     Нужно разобраться с средой разработкой для C++
Ответ Создать тему
Опции темы

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