Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a C# developer. I am planning to learn C++. (I hope I will be able to leverage the OOP concepts from C#]

I have a Windows 7 machine.

  1. What are the tools that I need to install for C++ development?
  2. Are there any good tutorials for switching over to C++ for a C# developer?
share|improve this question

closed as off-topic by gnat, GlenH7, Bart van Ingen Schenau, MichaelT, Simon Jan 2 '14 at 10:15

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – GlenH7, Bart van Ingen Schenau, MichaelT, Simon
If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers 3

up vote 8 down vote accepted
  1. Visual Studio (I am assuming you already have it, since you are a C# developer.) If you don't already have it, I recommend Eclipse with the CDT plugin. However, the build mechanisms are entirely different.

  2. I find that once you are a good developer, picking up a copy of the standard material i.e. http://www2.research.att.com/~bs/3rd.html is much more helpful than tutorials--this goes for almost any language. C++ is a very complicated and terse language, especially when compared to C#. The OOP concepts should help, but C++ is not built enforcing OOP like say JAVA or C#. Be patient, you could dedicate the next 5 years to mastering C++ and still not know everything there is to know about it.

share|improve this answer

If you want to stick with Windows your best option is Visual Studio C++, it's the best C++ compiler you can get for the Windows platform and you can get it for free.

There is also the MinGW for a port of the popular gcc compiler under Windows plus a complete set of utilities and debugger ( this is the suite used by many free IDE like Codeblocks ). You can also install Cygwin and get gcc from there, but it's a really comfy solution.

However i find myself much more confortable with C and C++ under an Unix-like system and i highly suggest to you to do the same.

The libraries of reference in the C++ world are:

  • Visual C++ ( only on Windows )
  • Standard libraries
  • boost libraries

do not expect the same library to have the same implementation details on different platforms or between 2 different versions, when programming in C++ the only thing that matters to you using external libraries is the interface.

There is also a good project by Microsoft called Channel 9 where you can get and see a lots of very interesting discussions and public talks.



share|improve this answer
Calling MSVC the "best C++ compiler" is a little strong statement. There are certainly areas where it excels (compilation speed, binary size), but in many areas, most importantly standards compliance it is very far from the best compared to other alternatives, most notably gcc. Also, I don't know what you mean by "Visual C++" as a "library". –  Tamás Szelei Jul 11 '12 at 13:17
I quote myself "it's the best C++ compiler you can get for the Windows platform" –  user827992 Jul 11 '12 at 13:20
I meant to reflect on the whole statement, it is not true (or at least arguable) in that form. You can get gcc (even the latest builds) for windows, you know. –  Tamás Szelei Jul 11 '12 at 13:23
GCC on windows is a porting, is not developed by the same people who made GCC in the first place. –  user827992 Jul 11 '12 at 13:27
I don't see how any of that is relevant (also, I wouldn't be so sure that there are no gcc devs in the mingw project, but whatever, it really doesn't matter). Or do you honestly think that a port is somehow inferior to applications that are originally targeted at windows? –  Tamás Szelei Jul 11 '12 at 13:36

If you're on Windows, Visual Studio will be the most comfortable fit for you, so you might as well continue to use that. If you want to push yourself later for some Mac, Android or Linux development, then grab eclipse which isn't too far different.

Tutorials: try the MSDN blogs. Here's one from Jerry Nixon, mainly about metro games, but it shows MS's new direction, and is written from a C# developer perspective. Here's one from David Britch.

Also see Herb Sutter's 'writing modern C++ code' which has some comparison to C#, but also shows you the basics of some of the newer features in C++.

Also see this old C# for C++ developers page, obviously you can convert the points in the opposite direction.

The main thing that I would recommend is to remember to pass by value. C# shoves everything on the heap, with C++ you should generally copy all objects by value, and let the compiler manage them - don't think you're writing very slow code, passing by value lets the compiler optimise the memory copying away and is a more natural programming model for C++. If you do want/prefer to pass objects by reference, then use shared_pointer.

and lastly, look to SO for more answers.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.