|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.11.2014, 12:31 | #11 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Знаю поэтому и советую. Объясняю. Писать сишные заголовки - это плохая практика, так как ухудшается читабельность (объяснения ниже):
Код:
А если написать С++-заголовок, то сразу понятно, что std::rand - стандартная. Для избежания конфликтов имён придумали пространства имён. Такой код читается легко и нет конфликтов имён. Это обычная практика: Код:
|
09.11.2014, 16:26 | #12 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
1) ТС заюзал using. Да, это плохо, сам он виноват. 2) когда придумываешь имена - надо стараться не брать имена из стандартной библиотеки. Это просто факт. 3) вот ты написал свой код, ну допустим у тебя есть библиотека ms (как выше) и юзер начал ее использовать. Что будет если юзер выполнит using ms и using std ? - да, юзер сам будет виноват, но и разработчику библиотеки в ms не стоило использовать имена из стандартной библиотеки, т.к. с большой вероятностью она будет подключена и за-using-а. |
|
09.11.2014, 17:27 | #13 | |||
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Цитата:
Цитата:
Цитата:
Да всё просто. Пишем #include <cmath>, а в коде std::rand и сразу видно откуда функция |
|||
09.11.2014, 18:49 | #14 | |||||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Цитата:
Цитата:
Вопрос был не о именах вообще, а о панике, которую на abit навел код, а именно math.h - он явно воспринял это как катастрофу. Он явно считает, что С++ лучше чем Си во всем. Цитата:
Цитата:
Если ты так плотно влез в диалог - отвечай Последний раз редактировалось rrrFer; 09.11.2014 в 18:51. |
|||||
09.11.2014, 18:49 | #15 | |
Пользователь
Регистрация: 06.11.2013
Сообщений: 40
|
Цитата:
Необходимо подсчитать количества выполненных операций сравнения для данного поиска. То что я написал выше, не работает. |
|
09.11.2014, 19:00 | #16 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Код:
|
09.11.2014, 19:56 | #17 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Студентов нужно учить современному C++11, а не забивать им голову чистым Си и устаревшим C++98
Подведём итог 1) Не писать using namespace std; А писать явно std::rand 2) Всегда использовать заголовки с буквой c: Код:
Код:
|
10.11.2014, 03:25 | #18 | ||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Цитата:
|
||
10.11.2014, 10:18 | #19 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Вредно учить студентов смеси Си и С++98 и при этом не иметь никакого представления о C++11 и С++14. Очень вредно. Это одна из причин почему получаются говнокодеры. И, к сожалению, это происходит, потому что некоторые преподаватели сами недоучки. Они нахватались поверхам информации из книжек, интернета, форумах, а практики никакой не имеют. Совершенно не понимают реалей и как эволюционируют языки Си и С++ и почему они развиваются именно так. Обязательно нужно показывать какие раньше были проблемы, как их решали костыльным способом и как теперь эти проблемы красиво решаются, и какие ещё есть проблемы, которые планируют решить в следующих версиях языка, например, в C++17
Си программа должна компилироваться сишным компилятором. Для этого можно, например, создать в VS консольный проект и создать файл с расширением main.c (не main.cpp!). Тогда компилятор не позволит говнокодить и вставлять C++ конструкции в Си программу. Языку Си нужно обучать отдельно от C++ и ни в коем случае не мешать их в кучу Последний раз редактировалось 8Observer8; 10.11.2014 в 10:23. |
10.11.2014, 10:33 | #20 | ||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Нафиг не нужны фичи и тонкости С++ 99% выпускников. С++ в вузах берут потому что есть куча си-подобных языков, но при этом в той же джаве нет проблем с утечками в том виде, в котором они есть в Си и не надо там программисту использовать умные указатели (как и в куче других языков, в том же пхп, питоне и прочих). В пхп нет таких крутых как в С++ шаблонов, а шаблоны в С++ - это еще один язык (причем совсем другой - на функциональщину смахивает). МОжет не надо грузить бедных стдуентов тонкостями типа сокрытия имен при наследовании шаблонов в С++ ?- ни в одном другом языке они этих проблем не огребут. Цитата:
У Си порог вхождения несравненно ниже. Страуструп считает, что изучение С++ надо начинать с подмножества Си и потом постепенно начинать использовать всякие фичи (ты про это можешь в его книге прочитать). Мейерс аж в первом правиле (из 55) говорит что относиться к С++ надо как к конгломерату из 4 языков (в том числе Си). А так то да, ты можешь рассказывать про эволюцию реалий С++ |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск методом Хоара | Sashka_BezDelnik | Общие вопросы C/C++ | 0 | 06.10.2014 13:40 |
ошибка аппроксимации | maxick96 | Visual C++ | 0 | 17.11.2013 22:41 |
Написать программу на языке VFP для аппроксимации методом наименьших квадратов | austyuzhin | Помощь студентам | 0 | 31.05.2013 17:11 |
VBA: Одномерный поиск оптимума функции методом поиска с использованием квадратичной аппроксимации | Potemkin | Помощь студентам | 1 | 29.09.2010 22:28 |
Метод аппроксимации Фогеля | Unever | Помощь студентам | 2 | 19.12.2009 18:01 |