Задать вопрос
  • Зачем whois информацию делают публичной?

    @amimotogo
    Это выглядит странно, я даже провайдеру не хочу сообщать свой домашний адрес, а тем более, чтоб он выкладывал его в публичный доступ.


    Формально, тогда он вправе отказать вам в услуге.
    Фактически, конечно, всем наплевать.

    Кто разбирался в этой теме, пожалуйста, дайте конкретный совет:

    Можно ли в "whois" вместо домашнего указать адрес своей работы(улица, дом, офис, телефон) ?

    Вы можете на левого человека даже оформить.
    Проблема только в том, что если у вас домен пожелают увести - то вы никак не сможете подтвердить, что владелец именно вы.
    Ну и еще, крайне редко, регистраторы проводят проверки даже и без наличия конкурентной борьбы за ваш домен - просто для профилактики. "А докажите нам что вы это вы, пришлите сканы документов с пропиской и т.д."
    За 20 лет что я владею 10-ю доменами - сталкивался с этим 2 раза.
    Ответ написан
    1 комментарий
  • Кто/Как отвечает за синхронизацию объявлений между “.cpp” и “.h” файлами?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Если функция объявлена, но не определена, то будет ошибка линковки. Если даже не определена, или нет подходящих сигнатур, то ошибка компиляции.

    За синхронизацию изменений отвечает сам программист. Помогать ему в этом могут разные средства разработки, например IDE. Многие IDE строят модель кода, и могут показывать сообщения об ошибках ещё до сборки программы. Помимо этого, IDE обычно предоставляют всевозможные варианты рефакторинга: хотите что-то переименовать, используйте соответствующую функциональность среды разработки. В этом случае, имя функции изменится корректно везде или почти везде.

    На практике, если вы что-то забыли, то получите ошибку сборки программы (на одном из этапов). Если проект большой и сложный, то он может и собраться, но работать очень неожиданным образом, например если линковщик нашёл где-то символы, но не там где нужно :)

    Ну и рекомендую почитать любую книгу по C++, всё что я написал выше, будет в первых главах книги.
    Ответ написан
    1 комментарий
  • Есть ли сборник примеров/советов, обучающих С++ программированию?

    myjcom
    @myjcom Куратор тега C++
    Слишком много литературы есть по С++

    макулатуры.

    Т.е. не обучение языку, а обучение бытовому программированию




    В частности интересует: Обработка данных, Абстрактное программирование, Шаблоны

    Бери(те) все по списку

    На буржуйском есть поинтереснее.
    например
    раз
    два
    Ответ написан
    1 комментарий
  • Есть ли сборник примеров/советов, обучающих С++ программированию?

    @majstar_Zubr
    C++, C#, gamedev
    Лично меня учит исходный код, который нахожу на github и в исходниках boost. По-другому не знаю как ещё.
    Мне кажется , что каждый, кто пишет на C++ считает, что у него навыки ниже среднего, лично мне только такие люди попадались. С книгами все не однозначно, потому что в них много опечаток, и даже ошибок, что не удивительно, если речь идёт о C++. Даже стандарт C++ без ошибок в компиляторе поддержать задача не тривиальная.
    В общем, спасение утопающих - дело рук самих утопающих.
    https://github.com/fffaraz/awesome-cpp
    Ответ написан
    4 комментария
  • При запуске C++ программы, какие типы переменных инициируются нулями?

    Adamos
    @Adamos
    11. Инициализируй все переменные, не рассчитывая, что компьютер сделает это за тебя.
    Тебе это ничего не стоит, а пренебрежение может стоить долгих часов отладки.
    Например, для конвертирования строки в число wxWidgets имеет дивную функцию:
    wxString number(wxT("145"));
    long value;
    if(!number.ToLong(&value)) { /* error! */ }

    Это пример из документации. Фокус в том, что если функция вернула ошибку - в value так и остается мусор, в отличие от стандартного atol, который таки считает нечисловое значение нулевым.
    Ответ написан
    Комментировать
  • При запуске C++ программы, какие типы переменных инициируются нулями?

    myjcom
    @myjcom Куратор тега C++
    Я хочу иметь “шпаргалку”

    Имейте
    а да
    какие типы переменных инициируются нулями?

    https://en.cppreference.com/w/cpp/language/default...
    Ответ написан
    1 комментарий
  • Как правильно называть переменные в заголовке функции (параметры или аргументы)?

    myjcom
    @myjcom Куратор тега C++
    В объявлении параметр https://en.cppreference.com/w/cpp/language/function
    https://en.cppreference.com/w/cpp/language/functions
    https://en.cppreference.com/w/cpp/language/functio...

    Аргументы это то что фактически передаётся в функцию при вызове, или аргументы по умолчанию https://en.cppreference.com/w/cpp/language/default...
    Ответ написан
    Комментировать
  • Как правильно называть переменные в заголовке функции (параметры или аргументы)?

    Nipheris
    @Nipheris Куратор тега C++
    Речь идёт о формальных и фактических параметрах/аргументах. См. https://en.wikipedia.org/wiki/Parameter_(computer_... (желательно англ. вариант) для подробного объяснения.
    Что конкретно хотел сказать ваш новый сотрудник, лично мне непонятно, тем более что я согласен с вот этими цитатами
    Unlike argument in usual mathematical usage, the argument in computer science is thus the actual input expression passed/supplied to a function, procedure, or routine in the invocation/call statement, whereas the parameter is the variable inside the implementation of the subroutine.

    The term parameter (sometimes called formal parameter) is often used to refer to the variable as found in the function definition, while argument (sometimes called actual parameter) refers to the actual input supplied at function call.
    Ответ написан
    Комментировать
  • Какой выбрать C++ компилятор под Windows?

    @rPman
    Очень часто разработчики под windows с самого начала начинают работать с visual studio и с его немного несовместимым компилятором и std библиотеками, из-за чего последующие попытки собирать код из стандартного окружения порождают кучу работы, на нее забивают и продолжают сидеть на майкрософтовском.
    Самостоятельная настройка окружения для сборки под windows тут возможна (без загрузки visual studio) но поверьте, вам не захочется вручную загружать и настраивать сотни пакетов, никто этой фигней не мается. Ставят visual studio с интерфейсом, а там никто не мешает использовать командную строку.

    В общем случае, с вероятностью 99.9999999999%, вам будет НЕДОСТАТОЧНО только компилятора, вам нужны еще и библиотеки, настроенные на ваше окружение. Т.е. в зависимости от того под какую архитектуру и операционную систему вы собираете библиотеки/бинарники, и будет соответствующий ответ.

    Наиболее полно готовый и почти настроенный тулчейн (почти и наверняка это будет gnu compiler, но ничто не помешает использовать clang) можно найти в linux операционных системах, т.е настроив кросскомпиляцию из linux окружения можно будет собирать все, кроме наверное macos (ну там свои заморочки и это не невозможно).

    Только там, одинаково просто, можно будет собирать как windows приложения так и arduino скетчи.

    p.s. для настройки linux дистрибутива интернет вам понадобится только что для поиска документации, репозитории (тех же debian/ubuntu) можно приобрести на компакт дисках или сделать свой offline инсталятор.

    p.p.s. вы можете попытаться использовать windows 10 (не домашние) подсистему linux, установив в нее ту же ubuntu, и без каких либо накладных расходов (это не виртуалка, это скорее wine наоборот) работать

    Ближайший аналог удобного окружения но под windows это mingw (много рукошевелений) и cygwin, последняя так вообще копирует linux, но там свои заморочки, например файловые пути в итоговом приложении для совместимости будут вида /cygdrive/c/...., плюс совместимость dll своя, ни с чем не совместимая.
    Ответ написан
    1 комментарий
  • Какой выбрать C++ компилятор под Windows?

    32bit_me
    @32bit_me
    Программист, встраиваемые системы
    4 комментария
  • Как работает OpenSource проект?

    Zoominger
    @Zoominger
    System Integrator
    Если лицензия GPL, то автор лишается всех прав на код, так как код становится общественным достоянием, так что:

    1. Автор проекта с исходниками теряет право называть свою программу своей;
    2. Волонтеры-добровольцы с чистыми помыслами идут вместе с автором курить бамбук, потому что код тоже больше не их;
    3. Коварный/бесчестный конкурент с похожим проектом может возрадоваться, потому что может взять этот код, удалить все упоминания GPL, использовать и продавать.

    Поэтому то GPL надо убегать, как от огня, есть менее хищнические в этом плане лицензии - BSD, MIT.
    Собственно, от него и убегают и качество GNU-тых программ не может идти ни в какое сравнение с качеством проприетарных.
    Ответ написан
  • Как работает OpenSource проект?

    Цели публикации проекта в исходных кодах могут быть разные:
    1. Личные убеждения
    2. Юридическая необходимость (например проект основан на GPL-коде)
    3. Простота дистрибуции (нет необходимости самостоятельно мейнтейнить порты для разных ОС/дистрибутивов)
    4. Наработка портфолио/репутации
    5. Бизнес модель (продукт поставляется бесплатно, но есть донат или поддержка оказывается за деньги - выгодно чтобы продукт использовался как можно более широко). Это особенно актуально если разработчик ПО зарегистрирован как благотворительный фонд, т.к. в США, например, компании могут донатить в такие фонды часть налогов а фонд имеет возможность платить разработчикам зарплаты. Фонды, например, имеют Linux, Apache, NetBSD. nginx зарабатывает на коммерческой поддержке.
    6. Как ни странно, если код открыт - нет необходимости заботиться о том, чтобы его не украли конкуренты и проще доказывается авторство.
    7. Если продукт изначально разрабатывается не для продажи, а для внутреннего использования - возможность привлечь внешние ресурсы к разработке и меньше тратить свои.
    8. Реклама бренда - очень часто небольшие компании делают бесплатный продукт, в т.ч. с открытым кодом, чтобы продвигать платные продукты.
    ...

    Соответственно автору - ЧСВ, портфолио, репутация, карма, донат, заработок на поддержке, дополнительные ресурсы в разработке программы, внешний аудит кода, избавление от проблем защиты от утечек кода.
    Волонтерам, конкурентам - в зависимости от лицензии. Если это бесплатная лицензия - то наработка портфолио, прокачка скилов, в случае фонда - может быть возможность денежного вознаграждения, возможность доработать код под себя, возможность создать порожденные продукты. При этом в случае GPL эти продукты так же должны быть с открытым кодом. В случае коммерческих приложений с открытым кодом особых причин для волонтеров или конкурентов ими заниматься мало.
    Ответ написан
    Комментировать
  • Связь между таблицами (Главный-Подчиненный). Как правильно связать?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Смотря как вы захотите.
    Можете создать связь один ко многим или один к одному, назначив главной таблицу Водитель, в ней указать вторичным ключом первичный ключ таблицы Автомобиль. Или наоборот, Автомобиль главная таблица, связь один ко многим или один к одному, вторичным ключом первичный ключ таблицы Водитель.
    Можно создать третью таблицу, со своим первичным ключом, связь многие ко многим, хранить в качестве вторичных ключей первичные ключи таблиц Водительи Автомобиль.
    Ответ написан
    Комментировать
  • Связь между таблицами (Главный-Подчиненный). Как правильно связать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Таблицы "водитель" и "автомобиль", скорее всего, имеют связь многие-ко-многим, задаваемую через промежуточную таблицу.
    А вообще, в базе данных нет "главных" и "подчинённых" таблиц, есть связи между таблицами.
    Например, таблицы "квартиры" и "люди".
    квартиры <=владелец=> люди
    квартиры ==ответственный квартиросъёмщик=> люди
    квартиры <=регистрация== люди
    Ответ написан
    Комментировать
  • Связь между таблицами (Главный-Подчиненный). Как правильно связать?

    usdglander
    @usdglander
    Yipee-ki-yay
    Если у водителя может быть несколько автомобилей, то в таблицу Автомобили добавляем поле dirver_id.
    Если у водителя может быть только один автомобиль. то в таблицу Водители добавляем поле car_id.
    Если у водителя может быть много автомобилей, а у автомобиля может быть много водителей, то создаём таблицу Автомобили_Водители в которой будут два поля car_id и driver_id.

    Это я вам так, на примере, постарался рассказать о видах связей. Всё зависит от конкретной задачи.
    Ответ написан
    Комментировать