Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
15 / 4 / 2
Регистрация: 01.12.2010
Сообщений: 157
1

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

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

Author24 — интернет-сервис помощи студентам
Привет Всем !

Если я не ошибаюсь то с .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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2014, 03:49
Ответы с готовыми решениями:

Не могу разобраться со средой программирования MVS 2017
Привет, народ. Не могу создать консольное приложение Hello, World в новом проекте. По идее проект...

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

На каком уровне нужно знать английский, что бы заниматься web-разработкой?
Добрый вечер. Завтра иду в школу английского языка, хочу узнать подробнее про технический...

Нужно разобраться с написанием программы для замены букв на цифры (шифратор)
Здравствуйте. Столкнулся с проблемой, что не могу написать простой шифратор который шифрует...

17
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
07.03.2014, 07:19 2
using namespace std: это просто использование пространства имен. Если хочешь убрать эту строку, то нужно везде где используются имена из этого пространства имен, добавить например std::
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
07.03.2014, 07:48 3
Цитата Сообщение от Morris Посмотреть сообщение
void main(void) ...... и т.д...
int main
0
15 / 4 / 2
Регистрация: 01.12.2010
Сообщений: 157
07.03.2014, 08:39  [ТС] 4
Цитата Сообщение от solar_wind Посмотреть сообщение
using namespace std: это просто использование
Да.. это я знаю, только почему в древних версиях возможно было писать код, а в более новых мы обязаны вводить пространство имен?
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
07.03.2014, 08:40 5
Morris, Ну возможно это пространство имен было просто прописано в другом месте.
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
07.03.2014, 08:46 6
Лучший ответ Сообщение было отмечено Morris как решение

Решение

Цитата Сообщение от Morris Посмотреть сообщение
Да.. это я знаю, только почему в древних версиях возможно было писать код, а в более новых мы обязаны вводить пространство имен?
потому что изменился стандарт
а стандарт изменился потому что слишком много сущностей появилась в языке
и стала возможна колизия имен
вот и разбили их по группам

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

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


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

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

Значит смело можно изменять код с <iostream.h> на <iostream> и все будет хорошо работать в дальнейшем, верно?
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
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
15 / 4 / 2
Регистрация: 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
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
07.03.2014, 10:30 12
Цитата Сообщение от Morris Посмотреть сообщение
но очень важные нюансы мне бы хотелось узнать как я могу настроить VS2013 ultimate под старый вид (<iostream.h>),
я с ним не работал
у меня 2008 вот его настроить не возможно
это уже требования стандарта

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

сейчас появился новый стандарт 11, с ним я тоже не работал, но там много что вообще по другому, так VS2013 вроде его поддерживает
0
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
07.03.2014, 13:01 13
Цитата Сообщение от Morris Посмотреть сообщение
мне бы хотелось узнать как я могу настроить VS2013 ultimate под старый вид (<iostream.h>),
Не надо этого делать. Во многих средах разработки этого файла вообще может не быть. А использование его совместно с новыми средствами может приводить к ошибкам.
И книжки старые, даже если они хорошие, лучше обновить. Либо найти более новые издания этих же, либо сменить авторов. Проблем потом не оберетесь. Зачем приучаться к способам, которыми сейчас никто не пользуется (а зачастую они бывают вредны в современных условиях)?
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
07.03.2014, 16:05 14
Цитата Сообщение от DrOffset Посмотреть сообщение
Во многих средах разработки этого файла вообще может не быть.
еще раз повторю
Цитата Сообщение от ValeryS Посмотреть сообщение
никто не мешает создать свой файл-заглушку
iostream.h
C++
1
2
#include <iostream>
using namespace std:
сам напишешь этот файл, разумеется в новых компиляторах его нет

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

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

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

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

У меня лежит одна такая книга, 98 года издания. Там, например, советуют использовать ключевое слово register для счетчика цикла или рассказывают о том, что результат new нужно проверять на ноль. Книга хорошая в своей основе (написана хорошо, и для 98 года очень актуально), но все эти мелочи потом аукнутся, если не иметь источника для проверки этих сведений.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
07.03.2014, 18:21 16
Лучший ответ Сообщение было отмечено Morris как решение

Решение

Цитата Сообщение от DrOffset Посмотреть сообщение
Хорошо рассуждать с высоты опыта,
да, есть за мной такой грешок
Цитата Сообщение от DrOffset Посмотреть сообщение
Старые книги, зачастую грешат ручной микрооптимизацией. Чрезмерным акцентированием внимания на этом.
ну это смотря что за книги
например Все книги по конкретным средам программирования как то Борланд Си 3.0 или МАСМ 4.0
мною собраны и отнесены в самый дальний угол, выбросить как то рука не поднимается
а вот есть серия книг про машинную графику Л. Аммерал периодически перечитываю
есть куча алгоритмов для двумерной и трехмерной графики матрицы, векторы( не контейнеры)
да и знаменитую Петцольд Ч. "Программирование для Windows 95"
нет нет да открою

так что
Цитата Сообщение от DrOffset Посмотреть сообщение
И книжки старые, даже если они хорошие, лучше обновить. Либо найти более новые издания этих же, либо сменить авторов.
не совсем согласен
иногда просто нет других изданий или авторов
1
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
07.03.2014, 18:28 17
ValeryS, ну мы в разделе по С++, я говорил про книги по языку. Язык и подходы развиваются и старые способы могут быть вредны на новой почве. Их изучить можно и потом, когда будет на что опереться. Но есть материал, который, может быть устарел морально, но не предметно. Например в силу того, что программная и аппаратная платформа, по которой написана книга, более не применяется - это совсем другое дело. Читая такую книгу нельзя принести вред, потому что информация там не противоречит современным условиям. Ты собственно привел примеры из такой категории, которую я даже не имел в виду
Есть такое понятие, которое четко описывает, эту категорию - "классика". Вот, например, Достоевский - это классика, читать его можно в любом веке. А словарь русского языка - нет, его надо обновлять, иначе пользуясь изданием 1905 года, мы сможем составить неправильное впечатление о языке. Надеюсь эта аналогия четко пояснит что я имею в виду.
1
15 / 4 / 2
Регистрация: 01.12.2010
Сообщений: 157
10.03.2014, 04:44  [ТС] 18
В моем конкретном случае речь идет о виде программирования векторной графике. К нему я и собираюсь приложить C++.
Речь не совсем о технологическом, а о научном виде программирования.
Книги которые у меня имеются на разных языках и есть еще темы из лекции и все они имеют вид <iostream.h>, <vector.h> и т.д.
Поэтому я и хотел получить четкое направление чтобы окунувшись в глубь языка не возникали проблемы в области технологии.
Например: можно ли вызвать код в библиотеку .NET, интегрируется ли с C# или с VB, это мне не совсем интересно.
Поскольку я выбрал узкую специализацию и владею не плохой библиотекой для изучения данной темы хочу по благодарить о вас о помощи.

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

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

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

Спасибо за помощь!
0
10.03.2014, 04:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2014, 04:44
Помогаю со студенческими работами здесь

Нужно разобраться, не знаю с чего начать и как грамотно составить.Нужно,чтобы было ветвление
Прикреплен файл

Проблемы с разработкой чека для базы данных "Строймаркет"
Разрабатывать базы нас не учили, все пришлось сделать на коленке за неделю. Есть несколько...

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

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


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru