C# is a really nice language to get into if you like C++.
It tends to take some of the best points from C++, Java and other smaller languages, and improves on them, so you have things like garbage collection which is present in Java, but wasn't in C++. You should also read up about some of the advantages of adopting the 'managed code' paradigm. It's cool stuff.
Besides that, if you start moving beyond simple command-line applications into applications with nice UI's, you find that Windows Forms and the controls in the .NET framework are much, much nicer to work with and more organized than MFC.
Of all the languages I've had to use, I've worked with C++ the most, mainly because it's been the focus of the academic coursework I have taken, but I've been getting into C# independently, and it's really interesting.
well i know C the most right now i used to know VB but it's kinda fading away since 2yrs ago nad java well my HS teacher doesn't teach it well and plus their book sucks ask mafia, so i only know how to do command line till now on C, anywhere i could learn how to have graphics with C?
the '++' is an incremental operator in C (as well as other languages)
C++ is basically C but with Object Oriented Programming concepts, constructs and paradigms built on as well as some slightly different ways of doing things.
Object Orientation is a methodology of programming with aims of code reuse and the below. Objects - packaging data and functionality together into units within a running computer program; objects are the basis of modularity and structure in an object-oriented computer program.
Abstraction - The ability for a program to ignore some aspects of the information that it is manipulating, i.e. the ability to focus on the essential. Each object in the system serves as a model of an abstract "actor" that can perform work, report on and change its state, and "communicate" with other objects in the system, without revealing how these features are implemented. Processes, functions or methods may also be so abstracted, and when they are, a variety of techniques are required to extend an abstraction:
Encapsulation - Also called information hiding: Ensures that objects cannot change the internal state of other objects in unexpected ways; only the object's own internal methods are allowed to access its state. Each type of object exposes an interface to other objects that specifies how other objects may interact with it. This prevents users from breaking the invariants of the program.
Polymorphism - References to and collections of objects may refer to objects of different types, and invoking an operation on a reference will produce behavior depending on the actual type of the referent.
Inheritance - Organizes and facilitates polymorphism and encapsulation by permitting objects to be defined and created that are specialized types of already-existing objects - these can share (and extend) their behavior without having to reimplement that behavior. This is typically done by grouping objects into classes, and defining classes as extensions of existing classes, thus and grouping classes into trees or lattices reflecting behavioral commonality. Although the use of classes is the most popular technique for inheritance, another well-known technique is Prototype-based programming.
C# (pronounced see-sharp) is an object-oriented programming language developed by Microsoft as part of their .NET initiative. Microsoft based C# on C++ and the Java programming language. C# was designed to balance power (the C++ influence) with rapid development (the Visual Basic and Java influences).