Изучение C++ на Linux или Windows? [закрытый]

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

, Если Вы передаете тип значения в метод, необходимо использовать второй пример; иначе Вы просто увеличиваете целое число, которое существует в объеме DoSomething ().Попробуйте: при выполнении первого примера после того, как DoSomething () работал, значение интервала будет неизменно.

Однако, если Вы являетесь передающими в чем-то другом, чем тип значения (говорят, что объектное нечто), Вы на самом деле передача ссылки к исходному объекту. Что-либо, что Вы делаете к нему в DoSomething () вступит в силу вне метода также, так как Вы все еще обращаетесь к тому же объекту.

можно выполнить то, чего Вы делаете попытку в первом примере путем записи:

void DoSomething(ref int value)

, Который дает.NET команду передавать ссылку на объект независимо от того, является ли это типом значения.

Посмотрите эту рецензию по телефону Типы Значения по сравнению со Ссылочными типами на MSDN для более подробного взгляда.

Кроме того, как zodoz указывает (upvote соответственно), путем возврата value++ Вы возвращаете и затем увеличиваете. Для возвращения увеличенного значения используйте ++value.

7
задан Community 23 May 2017 в 10:31
поделиться

10 ответов

На самом деле не имеет значения, на какой платформе вы пишете свой код.

Если вы хотите убедиться, что ваш код переносится, вы можете установить cygwin и gcc, а также Visual Studio.

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

9
ответ дан 6 December 2019 в 04:58
поделиться

If your goal is simply to learn C++, it doesn't matter what platform you use because C++, as a general purpose programming language, is not platform-specific. You can learn standard C++ on any platform with a decent C++ compiler.

8
ответ дан 6 December 2019 в 04:58
поделиться

Если вы хотите попрактиковаться / протестировать на Linux, вы можете просто создать виртуальную машину для пример с VirtualBox .

7
ответ дан 6 December 2019 в 04:58
поделиться

Do i miss something if I develop in C++ only on the Windows platform?

Valgrind.

7
ответ дан 6 December 2019 в 04:58
поделиться

Не совсем, если вы не используете специфичные для ОС вызовы или библиотеки.

Если вы спрашиваете об IDE, компиляторах и т. Д., Это показатель ваших предпочтений по этому поводу.

4
ответ дан 6 December 2019 в 04:58
поделиться

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

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

Еще несколько вещей, которые следует учитывать:

  • Вы должны получить готовую к использованию среду разработки, такую ​​как Eclipe или MS Visual C ++ (Windows) . Получить "стандартный способ" работы с текстовым редактором, make-файлами и т. Д. Слишком сложно для новичка, особенно в Windows.
  • Если вы собираетесь использовать .NET в Windows, вы должны знать, что этот язык немного отличается от стандартного C ++. То же самое верно для C ++ Builder и т. Д. Если вы используете Visual C ++ или среду, основанную на компиляторе GNU, вы можете программировать стандартный C ++.
  • Вам следует попробовать использовать стандартные API C ++ и библиотеки, такие как STL, а не MS -собственные библиотеки, за исключением случаев, когда вы хотите использовать Windows.
3
ответ дан 6 December 2019 в 04:58
поделиться

Пока вы придерживаетесь кроссплатформенных библиотек (например, Стандартную библиотеку C ++, Библиотеки Boost C ++ и Qt Framework ), вместо использования специфичных для платформы вызовов (например, WIN32 API), а также при условии, что вы используете кросс-платформенную систему сборки (например, CMake ) вместо специфичной для платформы системы (например, Visual Studio), тогда это не имеет значения. Тем не менее, гораздо проще настроить среду разработки C / C ++ на Linux , чем настроить эквивалентную среду разработки на Windows . А поскольку Linux не будет включать заголовок «windows.h», у вас будет меньше шансов активировать специфические для Windows функции, если вы разрабатываете на Linux.

2
ответ дан 6 December 2019 в 04:58
поделиться

Если в процессе изучения C и C ++ вы хотите увидеть, как на самом деле работают библиотеки и система, Linux - очевидный выбор, поскольку вы можете взглянуть на весь исходный код системы. код.

ИМХО, это может быть весьма поучительно.

1
ответ дан 6 December 2019 в 04:58
поделиться

I recommend that you stick with Windows for a while until you gain some familiarity with the language. Then you can switch to Linux if you like. I say this because on Windows you can use Visual Studio (the Express Edition can be downloaded for free). Its user friendliness will ease some of the pain caused by the initial hurdles when learning C++.

Eventually you should also learn the Linux/Unix way by using gcc, makefiles and an advanced editor like vi/emacs/whatever.. However, this by itself is already challenging stuff, so save it for later and learn C++ first.

2
ответ дан 6 December 2019 в 04:58
поделиться

Since with C++ alone you will not be doing much, you should use both OSs (and more) to understand what is available to you in terms of libraries, compilers and IDEs (even development philosophies vary from OS to OS), this is not really important on your first steps into C++, at that stage it is more important which compiler/IDE you select...

Zed above rightly points you out the virtual machine option, VirtualBox is great.

Personally I would advise to avoid using Visual Studio as your first IDE/Compiler, it will add increased complexity and attempt to brainwash you into .net at every chance it gets. It will also make it hard for you later on to move to other setups...

Start with a simple text editor (Notepad++ on windows) and by using the command line for compilations.

1
ответ дан 6 December 2019 в 04:58
поделиться
Другие вопросы по тегам:

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