Что я должен иметь в виду при портировании от C до C++

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

pip install -U selenium

для Chrome, загрузите последнюю версию драйвера Chrome "ChromeDriver 2.45" и напишите код

from selenium import webdriver
driver=webdriver.Chrome("Path of the Chromedriver" + "chromedriver.exe" )
5
задан Jay Bazuzi 17 November 2008 в 22:28
поделиться

8 ответов

Можно всегда включать сырые данные C код в проект C++. Таким образом, даже если у Вас есть библиотека C, которая несколько смешивает с C++, просто используйте extern "C" {} для ссылки затем назовите его в своем коде C++.

https://isocpp.org/wiki/faq/mixing-c-and-cpp

Также совершенно возможно связать объектные файлы C с файлами объекта C++.

Это (связывают с C++ супер-FAQ) является в основном всем, что Вы знаете, чтобы преобразовать Ваш проект в C++ и остаться совместимыми с наследием.

5
ответ дан 18 December 2019 в 05:19
поделиться

почему множественное наследование плохо

Эй, теперь. Множественное наследование может быть очень хорошим. Просто легко неправильно использовать. Один пример множественного наследования, которое хорошо в наследовании нескольких абстрактных базовых классов.

1
ответ дан 18 December 2019 в 05:19
поделиться

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

Если Вы имеете рабочую библиотеку C и хотите, чтобы она имела больше интерфейса "C ++ ish", то обертывание ее в классах могло бы быть более умным, чем преобразование ее. Конечно, этот satisifies требование для обеспечения благоприятного для DLL интерфейса C: сохраните тот, который Вы уже получили.

16
ответ дан 18 December 2019 в 05:19
поделиться

Как программист C, я нахожу это раздражающим, когда программисты на C++ пытаются "портировать" C на C++. В то время как существует много преимуществ для использования структур языка C++, они не всегда изменяют к лучшему простой функционально-ориентированный подход C. Так как можно всегда достигать функциональность C через extern "C", существует мало причины изменить рабочий код. В проектах я продолжил работать, создание объектных оберток вокруг кода C работало хорошо. Тем путем базовый код может быть общими для командами, работающими на любом языке, и все могут использовать интерфейс, который соответствует их среде. Мы даже "бэкпортировали" некоторый код C++ к C для поощрения повторного использования кода.

Я работаю с несколькими различными проектными группами, которые используют обертку C++ вокруг ядра C для доступа к базе данных. Некоторые команды используют C++, и другие являются C только, но базовая функциональность является общей для команды. Мы находимся в период обслуживания, поэтому даже если бы команда C хотела портировать на C++, это не было бы выполнимо. Попытки, которые я видел для преобразования C в C++, привели к дольше, более замысловатый, но никакой более выразительный код. YMMV, конечно.

11
ответ дан 18 December 2019 в 05:19
поделиться

Основным вопросом будут ключевые слова. Вы использовали 'новый', 'частный', 'общедоступный' и т.д. как имена переменной?
Если Вы не нацелены на определенную встроенную платформу или драйвер привилегированного режима, там не реальная потребность ограничивать себя 'c' больше.
Вы победили; t получают весь benfits C++ путем простого писания c кода в компиляторе C++, конечно - требуется немного больше пересмотра прежнего мнения, чем это!

1
ответ дан 18 December 2019 в 05:19
поделиться

Там какая-либо причина состоит в том, чтобы использовать C вообще?

Хотя это становится более редким, все еще возможно найти платформы, которые не имеют жизнеспособного компилятора C++. Микросхема ADI Blackfin попала в эту категорию несколько лет назад, я не уверен, существует ли достойный теперь.

1
ответ дан 18 December 2019 в 05:19
поделиться

Там какая-либо причина состоит в том, чтобы использовать C вообще?

Код C++ компилирует слишком медленно для маленьких проектов.
Долгая компиляция нарушает цикл: напишите некоторый код->, тестируют, он-> пишет больше кода->, тестируют его...

0
ответ дан 18 December 2019 в 05:19
поделиться

Да. C код, кажется, более прост для меньших проектов; мудрый LOC и двоично-мудрый.

0
ответ дан 18 December 2019 в 05:19
поделиться