Hello,

I've been wanting to learn C++ but I don't know the difference between Visual C++ and C++, is there really even a difference? Also, what would be the best compiler for me to start off with if I wanted to learn C++?

Thanks

C++ is a language, as defined by ISO.
Visual C++ is an implementation (like Borland, GNU, Intel).

Any modern 32-bit compiler will probably meet your needs for learning C++.

C++ is a language, as defined by ISO.
Visual C++ is an implementation (like Borland, GNU, Intel).

Any modern 32-bit compiler will probably meet your needs for learning C++.

Wait, so every compiler is considered to have it's own "implementation" of C++? So, is it possible to have a compiler that compiles pure C++, or is pure C++ just a language on paper?

Or did you just mean that Visual C++ implements the C++ language?

C++ compilers compile C++ programs.

This "pure" of which you speak (or portable as we would say) would be the standard library which is documented by ISO.

That said, any program you write which sticks to ONLY using the ISO standard library should
a) be compilable by any implementation of C++ which conforms to the ISO standard.
b) produce the same results when executed.

But all implementations have a whole range of implementation specific things as well (eg. windows.h) which are not portable.

> Or did you just mean that Visual C++ implements the C++ language?
That's pretty much what "is an implementation" is.

In other words, you are trying to make choice between a Ford car and Ford Crown Victoria Interceptor. Truth to tell, Microsoft tuning adds 5-th wheel (NET extensions) to this wonderful model...

Comments
LOL, metaphor of the week I'd say

I use two different compilers/development environments, i.e., Microsoft's Visual C++ 6.0 and Dev C++, the latter of which is a free and relatively small download of about 10 MB. For just starting out I'd highly recommend Dev C++ as a development environment. You can compile console or GUI Windows programs with either. Here is a link to download Dev C++/Bloodshed...

http://www.bloodshed.net

Of course, Microsoft is and has been for some time giving away various free compilers/development tools, but I personally tend to shy away from these as the download size and volume of documentation is beyond what I'm prepared to handle.

I would avoid VC++ 6 if you're wanting to learn modern C++. It pre-dates the standard.

The latest Visual Studio Express versions are very good, and definitely worth considering if you've got the bandwidth. Plus you can't beat the price :)

code::blocks is the apparent successor to dev-c++, as it is an active project.
Both use the same high quality GNU tools underneath though.

Alright, just one last thing (even though this should be solved), the coding used in code::blocks is the same as in Visual Studio Express?

If you stick to standard C++ yes.

The two IDEs themselves will look superficially similar (like File->Save As...), but there will also be differences as well. But the C++ standard makes no comments about IDEs.

It's a useful test, if your code works in both, you're in pretty good shape.

Ok, that's all I needed to know, and I've started using Code::Blocks, it's pretty good

This question has already been answered. Start a new discussion instead.