Advertisement Jump to content
Sign in to follow this  
shadowstep00

From C to ?

This topic is 1796 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

So I want to move on from C to an object oriented language. (C++, C# or Java)

 

My C knowlege is not that advanced.

But I have learned all the basics of the language. (pointer,arrays, structures, input output files, dynamic memory)

 

I don't plan to move on Java because I am going to learn it along with my university class next year.

 

This leaves me with C++ and C#. I think it's best for me to move on to C++. But there's a big fuss on learning C++  the C way. And because I know C I don't want to start using C in C++. This is something I want to avoid.

 

So I want a book that doesn't learn you to program the C way in C++. I don't care if it's an super introductory book I don't mind. I just want the book to explain well the object oriented concepts and the best way to program in C++.

 

 

 

Thanks smile.png

 

 

Share this post


Link to post
Share on other sites
Advertisement

On Youtube you can find long presentations form Stroustrup where he talks about how not to look at at C++ as C with classes and how to do things the C++11 way. They might sound a bit advanced though.

 

This was the last one I saw: "The Essence of C++: With Examples in C++84, C++98, C++11, and C++14"

Share this post


Link to post
Share on other sites

If your goal is as stated, to learn an object-oriented language then I think C# is the one to choose of the three.

 

Java, as you mention, is something you will learn at university anyway.

 

C++ is an old, large, complex language and has plenty of things in it that don't relate to OO. As I get older I like C++ less and less (or rather I dislike it more and more), the infuriating anachronisms of C++ make it a language I'd advise people to stay away from unless they have no choice.

 

C# is Java-esque, so it will give you an edge when learning Java at uni. But it is actually a much nicer language than Java (and C++, but that's setting a pretty low bar anyway).

 

Another good candidate is Python, btw.

 

If I absolutely had to use a systems language and had my choice of them then I would skip C++ and go straight to Rust or Go.

 

Once you know the C#/Java way of doing things you might actually have a better idea how to approach C++. C-style C++ results in questionable code (unless it was done for a good reason) but C#/Java-style C++ is not a bad place to start and then you can selectively bring in some of the actually-nice C++ features like free-functions, typedefs, better-generics (templates, but don't go overboard with them), deterministic destruction, const, auto, maybe some others. A lot of the C++ language you just want to ignore day-to-day really (javascript's headed that way too).

Share this post


Link to post
Share on other sites

I learned C++ right after C, and I do not regret it.

When I needed Java, it took me two days to be capable enough for the tasks.

I studied C# to code a tool, and even though it took me longer than Java to get the hang of, the learning was also fast and easy enough.

 

But I like to learn languages as I need them. It reinforces the concept that they are the tools; and that I am not their programmer.

The only times where I research new languages that I won't really need (notice I said research, not learn) is when I am evaluating new technologies, what I do from time to time. Still, this research process should never take over two days.

 

And as you said you'll be needing Java, I'd go for it.

 

I guess the best C++ book recommendation I can give you, following what you asked, is C++ for dummies.

Edited by dejaime

Share this post


Link to post
Share on other sites

I wouldn't go on C++ right now. Main problem is that there's no such thing as "C++" to start with. I mean just read this:


On Youtube you can find long presentations form Stroustrup where he talks about how not to look at at C++ as C with classes and how to do things the C++11 way. They might sound a bit advanced though (1).
 
This was the last one I saw: "The Essence of C++: With Examples in C++84, C++98, C++11, and C++14" (2)

Here's what I read "between the lines":

  1. The new, non-broken way. But wait, because the new not-broken way is complex.
  2. 4 versions. Four.

I'd probably go C# right now. Java left me a bitter taste and not in the good way.

Share this post


Link to post
Share on other sites

Guys I am determined to learn C++ and do some serious stuff with it until the end of the year. :P 

 

I will take a look at the books you recommended me.

I already started with C++ Primer as it is the most advanced and will get me quickly moving. (see if I can keep up with it)

 

 

Thanks for your suggestions!

Share this post


Link to post
Share on other sites

I'd probably go C# right now. Java left me a bitter taste and not in the good way.

 

If you want an even more bitter taste, try using C# with Windows Metro... They cut out loads of classes for their core profile and does tend to cause quite a few headaches.

 

Whilst C++ is a perfectly robust language, the only one I have known not to evolve in any radical way (for many years) is C.

 

... Oh wait, you say that there is now <stdbool.h>? C99 is Madness!

Edited by Karsten_

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!