Почему я должен использовать IDE? [закрыто]

Я не думаю, что сделать оператор & amp; private делает это, есть ли законный способ сделать это.

Нет, потому что &, который вы используете в сигнатурах функций для передачи по ссылке, не является оператором. Вы говорите либо об адресе оператора (унарного), либо побитового - и оператора (двоичного). Таким образом, это не имеет никакого отношения к передаче по ссылке.

Невозможно запретить передачу по ссылке для типа.

Я сомневаюсь, что ваша мотивация достаточно сильна, чтобы сделать это, и у вас плохое представление о механизме передачи:

Если какая-либо функция пытается получить ее по ссылке, я бы хотел, чтобы она давала ошибку компиляции (в идеале) или запуска временная ошибка.

Функция либо передает параметр по ссылке, либо по значению. Это определяется его заявлением, и я думаю, что ваше замешательство проистекает отсюда. Например:

void foo(X x);

принимает значение x по значению. Невозможно передать его по ссылке. Ни за что. Аналогично:

void foo(X& x)

берет его по ссылке, и он всегда будет.

388
задан 4 revs, 3 users 64% 23 May 2017 в 12:10
поделиться

34 ответа

IDE позволяет работать быстрее и более легко... Я заметил, что провел много времени, перейдя в коде в простом текстовом редакторе...

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

3
ответ дан 22 November 2019 в 23:49
поделиться

Как вы видите, существует решение, которое работает только со стандартным SQL, но оно длинное и сложное.

Обратите внимание, что также можно написать программу «Hello, world!», которая правильно работает на трех разных языках программирования. Однако это обычно не приносит никакой пользы вашей программе. Гораздо проще просто написать программу трижды, с учетом конкретного синтаксиса каждого языка.

Я думаю, что с SQL часто лучше забыть попытки найти решение, которое работает во всех RDBMS и использует определенные расширения и идиомы поставщиков, которые облегчают запросы. Например, в MS SQL Server, вы можете сделать что-то подобное:

SELECT Field1, Field2, Field3
FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY field1 ORDER BY field2) AS rn
    FROM table1
) AS T1
WHERE rn = 1

В любом случае, у вас уже есть общее решение, поэтому я просто подумал, что я бы предложил эту альтернативную точку зрения.

-121--3579288-

Во время инициализации классы создаются только частично. В частности, конструкторы должны выполняться из класса предков до, чтобы каждый производный конструктор классов мог безопасно обращаться к своим базовым членам.

это означает, что vtable частично построенного класса не может находиться в его конечном состоянии - если бы виртуальным методам было разрешено вызывать производные классы, то эти методы были бы вызваны до вызова конструктора классов.

Это означает, что во время построения чистые виртуальные функции фактически являются чистыми виртуальными. Современные компиляторы c++ все лучше ловят это - но его можно во многих случаях «похоронить» незаконный вызов путь, чтобы компилятор не заметил ошибки.

Мораль истории: не делайте в вашем конструкторе ничего, что вызовет виртуальную функцию. Это просто не сделает то, что вы ожидаете. Даже когда это не чисто.

-121--3101618-

Для меня IDE лучше, потому что она обеспечивает более быструю навигацию в коде, что важно, если у вас есть что-то в уме для реализации. Предполагается, что вы не используете среду IDE, чтобы добраться до места назначения требуется больше времени. Ваши мысли могут прерываться чаще. Это означает, что необходимо нажимать больше нажатий/клавиш. Нужно больше концентрироваться на мысли, как реализовать вещи. Конечно, вы можете записать вещи тоже, но тогда надо прыгать между дизайном и реализацией. Кроме того, дизайнер графического интерфейса пользователя имеет большое значение. Если сделать это вручную, это может занять больше времени.

3
ответ дан 22 November 2019 в 23:49
поделиться

IDE с графическим интерфейсом, такие как Visual Studio и Eclipse, имеют ряд преимуществ перед текстовыми IDE, такими как Emacs или vim, благодаря своим возможностям отображения:

  • Предварительный просмотр WYSIWYG и редактирование в реальном времени для дизайна GUI
  • Эффективные редакторы свойств (например. выбор цвета с помощью палитры GUI, включая позиционирование градиентных остановок и т.д.)
  • Графическое изображение контуров кода, взаимосвязей файлов и т.д.
  • Более эффективное использование площади экрана для отображения точек останова, закладок, ошибок и т.д.
  • Лучшая поддержка перетаскивания с ОС и других приложений
  • Интегрированное редактирование рисунков, изображений, 3D моделей и т.д.
  • Отображение и редактирование моделей баз данных

В принципе, с IDE на основе графического интерфейса вы можете получить больше полезной информации на экране за один раз, и вы можете просматривать/редактировать графические части вашего приложения так же легко, как и текстовые.

Одна из самых приятных вещей для разработчика - редактировать метод, который вычисляет некоторые данные, и видеть живой результат вашего кода, отображаемый графически в другом окне, точно так же, как его увидит пользователь при запуске приложения. Вот это и есть WYSIWYG-редактирование!

Текстовые IDE, такие как Emacs и vim, со временем могут добавить такие функции, как завершение кода и рефакторинг, поэтому в долгосрочной перспективе их основным ограничением является их текстовая модель отображения.

3
ответ дан 22 November 2019 в 23:49
поделиться

Это действительно ОЧЕНЬ просто. Но этот ответ немного парадоксален в том смысле, что я обсуждение чего-то, с чем когда-либо сталкиваются только разработчики уровня EMBEDDED. Причина, по которой это странное мнение, заключается в том, что, откровенно говоря, когда я выполнял встроенную работу (то короткое время, когда я зарабатывал реальные деньги), среда IDE не работала СТРАННО, и большинство ваших коллег удивлялись, почему вы не можете вспомнить достаточно о SNMP / ASN.1 или любой другой протокол, с которым вы имели дело, чтобы просто / выполнять свою работу /. НО вы НЕ МОЖЕТЕ, насколько я знаю, выполнять графическое моделирование того, что ваш микроконтроллер делает в чем-то вроде / реального времени / без «IDE».

1
ответ дан 22 November 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: