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

C++

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

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

07.03.2014, 03:49. Просмотров 646. Ответов 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
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
07.03.2014, 07:19     Нужно разобраться с средой разработкой для C++ #2
using namespace std: это просто использование пространства имен. Если хочешь убрать эту строку, то нужно везде где используются имена из этого пространства имен, добавить например std::
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,735
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
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
07.03.2014, 08:40     Нужно разобраться с средой разработкой для C++ #5
Morris, Ну возможно это пространство имен было просто прописано в другом месте.
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,735
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
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,735
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
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,735
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
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,735
07.03.2014, 10:30     Нужно разобраться с средой разработкой для C++ #12
Цитата Сообщение от Morris Посмотреть сообщение
но очень важные нюансы мне бы хотелось узнать как я могу настроить VS2013 ultimate под старый вид (<iostream.h>),
я с ним не работал
у меня 2008 вот его настроить не возможно
это уже требования стандарта

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

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

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

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

Добавлено через 2 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
И книжки старые, даже если они хорошие, лучше обновить. Либо найти более новые издания этих же, либо сменить авторов.
А как насчет переосмыслить код и написать заново с новыми требованиями
Книги тем и хороши что там есть методика и алгоритмы, а не голые листинги
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2014, 17:24     Нужно разобраться с средой разработкой для C++
Еще ссылки по теме:
Нужно разобраться с кодом C++
C++ Нужно разобраться со стеком
C++ Нужно разобраться с указателями
C++ Нужно разобраться с циклом if
C++ Нужно разобраться в коде

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

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

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

У меня лежит одна такая книга, 98 года издания. Там, например, советуют использовать ключевое слово register для счетчика цикла или рассказывают о том, что результат new нужно проверять на ноль. Книга хорошая в своей основе (написана хорошо, и для 98 года очень актуально), но все эти мелочи потом аукнутся, если не иметь источника для проверки этих сведений.
Yandex
Объявления
07.03.2014, 17:24     Нужно разобраться с средой разработкой для C++
Ответ Создать тему
Опции темы

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