Hi guys,

As some of you may know im working on learning more c++ and trying to become a good programmer, iv got things like classes, function pointers and template classes under the belt as far as i can see (although to be honest i have never found a place to use inherited classes yet but this is not the point) I was considering if i should continue to learn more "normal" c++ and then learn c++.net later or should i switch to c++.net right away?

Theres a high change i have missed the picture but from what i seen in the .net stuff is that it seems allot neater to use forms items such as combo boxes and radio buttons all that kind of things which i would like so i can make configuration sections for my OpenGL apps (which are also so very basic as im learning OpenGL alongside c++) The ability to drop buttons in places where i need them in my programs would be nicer than always having keyboard buttons to do it.

Another thing i seen in .net but maybe its not from .net, is that it has array bounds checking and memory protection features built in that although i can say i only every so often encounter a null pointer problem (usually seting it to 0 at init and then forgeting to actually assign it :P) i dont have allot of those problems but i appreciate in big projects this may come in very useful.

So really what im looking for here is that would it be worth my while at a fairly basic level of c++ looking at .net and probibally geting my mind blown into to tiny pieces now but geting throuhg it and hopefully coming out on top, or waiting untill i become atleast moderately proficient at c++?

Many thanks,
Kano

Recommended Answers

All 6 Replies

Personally I would continue to learn the unmanaged C++ as this is a more general language (and can be applied to Linux/Unix/Windows)

C++ .net (or managed C++) is, in my opinion, verging on pointless. C# is simpler and quicker (to code) than Managed C++. With the ability for C# to use Platform Invoke (P/Invoke) you have access to the Win32 API and unmanaged code.

If I were you, and remember this is personal opinion I would continue to use C++ (unmanaged) and also begin to learn C#. If you later need to learn Managed C++ it will be much easier, but rarely used.

The way in which I would do the above is to first write a program in C++ and then translate it to C# or vice-versa.

In response to your wanting to use OpenGL. Even if you wanted to use OpenGL in Managed C++ you would need to use the managed libraries (TaoGL), or, create a Managed to Unmanaged proxy so you could use unamanged OpenGL in unmanaged code.But this would also work equally well with C#. Also, Microsoft has a very powerful (and fast) Managed DirectX SDK and the XNA Game Developer Framework.

Tl;Dr - Stick with plain C++ and begin learning C#. In the rare case you may ever need Managed C++, learn it then.

commented: Agreed +4

Ok cool thanks, i had heard of c# for that but but i dont like it as it seems to be some crazy java c hybrid but its probibally a lack of udnerstanding. Ill stick to unmanaged c++ (i knew theres was a word for it thanks for that)

Also i have used XNA but as its soley microsoft and i always felt that directx is to complex to do little work (this seems to change later when you get into it) and the fact that it is a microsoft thing alone is enough to make me unhappy with it. the fact that microsoft seem to favour the easy way over the way that makes the best use of computer performance i just dont like them. (but im stuck with windows as i wasnt very good with linux :( )

Enough of that short rant the main thing is thanks for your reply ill keep learning, one final thing, i am finding streams a bit strange to work with for files and all these other things it just seems to be this strange entity that does everything. could you point me towards some resources that explian them to a beginner/ intermediate so its simple but has detail.

Again many thanks its much appreciated.

Streams in C++ or Streams in C# :D

ooh in c++ sorry

c++ is just easy and effective.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.