# Whats the difference between C, C# and C++



## ste2223 (Sep 2, 2004)

Hi, I was searching Amazon for a book on C programming the one I was looking for is the SAMS Teach yourself but I got 3 different types. Theres C, C# and C++. Now im unsure as to which one to get.

Could someone explain whats the difference between these 3 languages and maybe recomend any books that might help me learn the language? Thanks!


----------



## Regicide (Aug 8, 2003)

I haven't really used C# so someone can correct me if I'm wrong. But, from my understanding C# is basically Microsoft's creation to help push their .Net platform. From what I have read is a mix between C++ and Java.

C++ is the second generation of C. There are minor differences in syntax that are easy to accommodate. C++ is more powerful than C and easier to manage. The major difference between them is that C++ is object oriented.

From that, I would recommend start by learning C. A great book is C: The Complete Reference by Herbert Schildt ( http://www.amazon.com/exec/obidos/t...002-1274149-3823217?v=glance&s=books&n=507846 ). It gives a great foundation for any type of programming you go into. Also, at the end has a section on the basics of C++.


----------



## ste2223 (Sep 2, 2004)

Thanks. Just a couple of questions you may be able to answer.



> C++ is more powerful than C and easier to manage.


Does this mean C++ is easier to learn?



> C++ is object oriented.


Im unsure what object oriented means.


----------



## coachdan32 (Nov 13, 2003)

I wouldn't say it is easier to learn, but you can create reusable objects that makes it easier once you learn. It is a very powerful language and will take a while to master.


----------



## ste2223 (Sep 2, 2004)

Thanks ppl. Ill try and learn C then maybe give C++ a go.


----------



## AGCurry (Jun 15, 2005)

C++ is a superset of C. Its main difference is that it facilitates objects, inheritance, and overloading, and therefore, object-oriented programming, in a transparent manner. You can do about anything you want in either language, but each has its advantages and disadvantages (I'll take stdio over streams any day...).


----------



## pcxmac (Aug 14, 2005)

I would start with C, learn all there is as far as the standards. Make sure you understand things like linked lists, structures, functions, recursion, itteration, etc... (also get a hang of the boolean operators, and how to manipulate bits and bytes (very important))
I would also learn about the history of C, and C++, and its implications like UNIX, and such. Also take the time to learn about how UNIX works, what a kernel is, and what microkernels are. Also if you have the time, look at how a compiler and linker works, parsing information, and assembly language (hardware specific). Learn about how drivers work, and the differing layers / hardware abstraction.
After that I would dive in to c++, and learn about how classes work, polymorphism, virtual abstract base classes, etc...

For books, usually colleges have good textbooks, (usually) I would also google for Dennis Ritchie, and Ken Thompson

History is a great way to see the way things have unfolded, the way different mechanisms in programming have come about.


----------

