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

C++

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

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

07.03.2014, 03:49. Просмотров 665. Ответов 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 что бы работал и первый вариант?


Огромное Спасибо !!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2014, 03:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно разобраться с средой разработкой для C++ (C++):

Нужно разобраться со стеком - C++
Доброго времени суток... Помогите, пожалуйста, разобраться со стеком. Задание следующие : &quot;написать программу для перестановки...

Нужно разобраться с C++ Builder - C++ Builder
Как добавить вот этот код &quot;Delphi&quot; c C++? { Public declarations } vcbChess:TVisualChessBoard; PlayerSide,...

Нужно разобраться с программой C++ (Фрактальное сжатие) - C++ Builder
Добрый день .Срочно нужна помощь !!!! программа строит различные типы фракталов и в ней есть метод сжатия изображений (Код с...

Не компилится код программы! ругается на объявление переменной - не могу разобраться что все таки нужно - чтоб работать стала - C++ Builder
Программа делается в 6 Builder в консоли Задание в прикрепренном файле!!! и коды прогрмм во вложениях!!! Одно из них: ...

Нужно разобраться в программе, Не могу скомпилировать - Visual C++
Скажу честно - заказал программу, для сдачи в вузе. Теперь не могу в ней разобраться. Как её скомпилировать? В чём ошибка? Вот задание:...

Хочу узнать о создаваемых exe файлах средой Visual studio - Visual C++
Хочу узнать о создаваемых exe файлах средой Visual studio Имею Visual studio 2012 Русская версия. удивило в ней то, что если пишешь на...

17
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
07.03.2014, 07:19 #2
using namespace std: это просто использование пространства имен. Если хочешь убрать эту строку, то нужно везде где используются имена из этого пространства имен, добавить например std::
0
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,926
07.03.2014, 07:48 #3
Цитата Сообщение от Morris Посмотреть сообщение
void main(void) ...... и т.д...
int main
0
Morris
15 / 4 / 1
Регистрация: 01.12.2010
Сообщений: 157
07.03.2014, 08:39  [ТС] #4
Цитата Сообщение от solar_wind Посмотреть сообщение
using namespace std: это просто использование
Да.. это я знаю, только почему в древних версиях возможно было писать код, а в более новых мы обязаны вводить пространство имен?
0
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
07.03.2014, 08:40 #5
Morris, Ну возможно это пространство имен было просто прописано в другом месте.
1
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,926
07.03.2014, 08:46 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Morris Посмотреть сообщение
Да.. это я знаю, только почему в древних версиях возможно было писать код, а в более новых мы обязаны вводить пространство имен?
потому что изменился стандарт
а стандарт изменился потому что слишком много сущностей появилась в языке
и стала возможна колизия имен
вот и разбили их по группам

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

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


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

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

Значит смело можно изменять код с <iostream.h> на <iostream> и все будет хорошо работать в дальнейшем, верно?
0
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,926
07.03.2014, 10:02 #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++)// в новых отработает нормально, в старых ошибка дважды объявленная
 {
.......................................
}
1
Morris
15 / 4 / 1
Регистрация: 01.12.2010
Сообщений: 157
07.03.2014, 10:23  [ТС] #11
То, что нужно будет еще и добавить в шапочке using namespace std; это я знаю.

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

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

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

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

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

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

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

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

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

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

У меня лежит одна такая книга, 98 года издания. Там, например, советуют использовать ключевое слово register для счетчика цикла или рассказывают о том, что результат new нужно проверять на ноль. Книга хорошая в своей основе (написана хорошо, и для 98 года очень актуально), но все эти мелочи потом аукнутся, если не иметь источника для проверки этих сведений.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2014, 17:24
Привет! Вот еще темы с ответами:

Нужно разобраться с Visual Studio - C++ WinAPI
Здравствуйте. Мне просто необходима ваша помощь. Дело в том, что в Microsoft Visual Studio 2010 не хочет компилироваться следующий код: ...

Нужно ли знать HTML, если заниматься разработкой на PHP? - PHP
Всем привет. Надо ли знать HTML что бы заниматься PHP? Хочу заниматься вебом но не фронтальной частью, а серверной. Всем заранее...

Помогите со средой - Программирование Android
Господа, почему когда я открываю в intellij Idea файл AndroidManifest.xml я вижу подобное?

Поделитесь средой! - Visual Studio
Torrent перестал качать :( на офф сайте тоже какая та лажа.. Прошу людей на этом форуме, зальте на Яндекс диск или ещё куда-либо! ...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
07.03.2014, 17:24
Ответ Создать тему
Опции темы

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