Learning C++
-
I am planning to learn "C++" as I am getting some freetime. I just checked the online articles and books available. Honestly, I am confused seeing many flavours C++ has. Which one should I learn ? I have seen VC++, Symbian C++ (mobile app) and some other flavours for linux. Which one do you recommend ? I have also gone through Nish's book, "C++/CLI in action" and found very interesting.
-
I am planning to learn "C++" as I am getting some freetime. I just checked the online articles and books available. Honestly, I am confused seeing many flavours C++ has. Which one should I learn ? I have seen VC++, Symbian C++ (mobile app) and some other flavours for linux. Which one do you recommend ? I have also gone through Nish's book, "C++/CLI in action" and found very interesting.
I'd go for The C++ Programming Language[^]. Who better than the creator of C++ could teach you C++?
If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Photos/CP Flickr Group - ScrewTurn Wiki
-
I am planning to learn "C++" as I am getting some freetime. I just checked the online articles and books available. Honestly, I am confused seeing many flavours C++ has. Which one should I learn ? I have seen VC++, Symbian C++ (mobile app) and some other flavours for linux. Which one do you recommend ? I have also gone through Nish's book, "C++/CLI in action" and found very interesting.
News flash - C++ is always C++ - there's only one flavor. I know I'm being pedantic and realize you're probably talking about frameworks and/or platforms. Once you've leaned C++, it's a simple matter of learning a given framework for the selected platform. If you're going to be a programmer, you have learn to be precise in your speech. Otherwise, other pedantic assholes (like me) will point out that your descriptions are flawed.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001 -
I am planning to learn "C++" as I am getting some freetime. I just checked the online articles and books available. Honestly, I am confused seeing many flavours C++ has. Which one should I learn ? I have seen VC++, Symbian C++ (mobile app) and some other flavours for linux. Which one do you recommend ? I have also gone through Nish's book, "C++/CLI in action" and found very interesting.
If you want to use C++/CLI based on Nish's book, there's only one real choice - Visual C++.
Deja View - the feeling that you've seen this post before.
-
I'd go for The C++ Programming Language[^]. Who better than the creator of C++ could teach you C++?
If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Photos/CP Flickr Group - ScrewTurn Wiki
That's a great suggestion.
-
I am planning to learn "C++" as I am getting some freetime. I just checked the online articles and books available. Honestly, I am confused seeing many flavours C++ has. Which one should I learn ? I have seen VC++, Symbian C++ (mobile app) and some other flavours for linux. Which one do you recommend ? I have also gone through Nish's book, "C++/CLI in action" and found very interesting.
VC++ is the IDE developed by MS for writing C++ programs. VC++ is not a variant of C++. The native development language for Symbian had been C++, but there is no written rule on that and Symbian C++ is again not a flavor of C++. CLI/C++ is Managed C++, is Microsoft specific - even .NET specific and is not a flavor of C++. For C++, it is just C++ and has no variants, whatsoever. The existing C++ standard was published in the late 90s (I'm sure it was revised at least once) and will remain intact until C++0x takes it over. Bjarne's book is a great reference, but for starting to learn, I'll recommend you something simpler, which has words like "beginner", "beginning", etc., in its title. Good luck. It is fun stuff. :)
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
-
I am planning to learn "C++" as I am getting some freetime. I just checked the online articles and books available. Honestly, I am confused seeing many flavours C++ has. Which one should I learn ? I have seen VC++, Symbian C++ (mobile app) and some other flavours for linux. Which one do you recommend ? I have also gone through Nish's book, "C++/CLI in action" and found very interesting.
There are flavors of C++ based on platform, mostly, but it is still C++ as long as you avoid "Tiny C/C++" type apps. Mobile computers often have RISC or similar reduced features compared to desktops, so sometimes require different compilers. That is still changing, as the two are coming closer and closer together such that some platforms are the same. For learning only, you can grab a free copy of VC++ or WxDevC++ and others: http://www.thefreecountry.com/compilers/cpp.shtml[^] http://wxdsgn.sourceforge.net/[^] The only advantage over those two, is primarily you get a windows application out of it. The former will do more C++/CLI if that is your thing (.Net). WxDevC++ has the advantage over it's baseline compilers from GNU in that it appears as an integrated IDE. It is simply a repackaging of GNU tools though, and you should be aware of that. There is UltimateCPP: http://www.ultimatepp.org/[^] but it will spoil you into avoiding C++ programming per standard and use more integrated features of Ultimate++ that do not apply to any other tool. So that is a caution, though quite convenient for developing in. Out of the three, for learning only, I like WxDevCPP the most. It has the IDE so you don't have to worry about GNU command line compilers or integrating it with your own IDE. Though there are some reasons to do that once you pass the learning stage, it is a great way to start out. Once you write your own software and want to make it professional, buy a compiler. Don't hedge either, a commercial license beats the ins and outs of a freebie with heavy license issues on commercial apps. But if you want to stay free while professional, read the license agreements completely of any free tool you use. GNU and some other license agreements are very restrictive.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."
-
If you want to use C++/CLI based on Nish's book, there's only one real choice - Visual C++.
Deja View - the feeling that you've seen this post before.
Pete O'Hanlon wrote:
If you want to use C++/CLI based on Nish's book, there's only one real choice - Visual C++.
I hope by Visual C++, you're talking about the IDE (Visual Studio) and not the language. Or you are drunk again. :-D
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
-
VC++ is the IDE developed by MS for writing C++ programs. VC++ is not a variant of C++. The native development language for Symbian had been C++, but there is no written rule on that and Symbian C++ is again not a flavor of C++. CLI/C++ is Managed C++, is Microsoft specific - even .NET specific and is not a flavor of C++. For C++, it is just C++ and has no variants, whatsoever. The existing C++ standard was published in the late 90s (I'm sure it was revised at least once) and will remain intact until C++0x takes it over. Bjarne's book is a great reference, but for starting to learn, I'll recommend you something simpler, which has words like "beginner", "beginning", etc., in its title. Good luck. It is fun stuff. :)
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
Rajesh R Subramanian wrote:
VC++ is the IDE developed MS for writing C++ programs. VC++ is not a variant of C++.
I have some basic idea on C++. But when I looked a VC++ code, it was entirely different and follow different style of writing than the normal C++, hence I thought it would be other flavor. Thanks for correcting it :) So are you telling that VC++ programs can be executed on any OS or is it windows specific ? And AFAIK, it uses MS C++ compiler, right ?
Rajesh R Subramanian wrote:
I'll recommend you something simpler, which has words like "beginner", "beginning", etc., in its title.
Any recommendations ?
-
There are flavors of C++ based on platform, mostly, but it is still C++ as long as you avoid "Tiny C/C++" type apps. Mobile computers often have RISC or similar reduced features compared to desktops, so sometimes require different compilers. That is still changing, as the two are coming closer and closer together such that some platforms are the same. For learning only, you can grab a free copy of VC++ or WxDevC++ and others: http://www.thefreecountry.com/compilers/cpp.shtml[^] http://wxdsgn.sourceforge.net/[^] The only advantage over those two, is primarily you get a windows application out of it. The former will do more C++/CLI if that is your thing (.Net). WxDevC++ has the advantage over it's baseline compilers from GNU in that it appears as an integrated IDE. It is simply a repackaging of GNU tools though, and you should be aware of that. There is UltimateCPP: http://www.ultimatepp.org/[^] but it will spoil you into avoiding C++ programming per standard and use more integrated features of Ultimate++ that do not apply to any other tool. So that is a caution, though quite convenient for developing in. Out of the three, for learning only, I like WxDevCPP the most. It has the IDE so you don't have to worry about GNU command line compilers or integrating it with your own IDE. Though there are some reasons to do that once you pass the learning stage, it is a great way to start out. Once you write your own software and want to make it professional, buy a compiler. Don't hedge either, a commercial license beats the ins and outs of a freebie with heavy license issues on commercial apps. But if you want to stay free while professional, read the license agreements completely of any free tool you use. GNU and some other license agreements are very restrictive.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."
I plan to write a platform independent program on this freetime. So my thinking is, I will write a C++ library which does the business logic. For UI, I will use tools which are specific to that OS. Say use "Perl" when in LINUX. Use MFC SDK when in windows. Is this practical ?
-
That's a great suggestion.
I disagree. I don't regard it as an ideal first book on C++.
Kevin
-
News flash - C++ is always C++ - there's only one flavor. I know I'm being pedantic and realize you're probably talking about frameworks and/or platforms. Once you've leaned C++, it's a simple matter of learning a given framework for the selected platform. If you're going to be a programmer, you have learn to be precise in your speech. Otherwise, other pedantic assholes (like me) will point out that your descriptions are flawed.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001John Simmons / outlaw programmer wrote:
you're probably talking about frameworks and/or platforms
Yeah. as I am new to this, I don't know how to express it clearly.
John Simmons / outlaw programmer wrote:
Once you've leaned C++, it's a simple matter of learning a given framework for the selected platform
Taking a good beginer level book on C++ and learning is what you mean, right ?
-
I disagree. I don't regard it as an ideal first book on C++.
Kevin
Kevin McFarlane wrote:
I don't regard it as an ideal first book on C++.
Which one you recommend then ?
-
Pete O'Hanlon wrote:
If you want to use C++/CLI based on Nish's book, there's only one real choice - Visual C++.
I hope by Visual C++, you're talking about the IDE (Visual Studio) and not the language. Or you are drunk again. :-D
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
Rajesh R Subramanian wrote:
I hope by Visual C++, you're talking about the IDE (Visual Studio)
Yes.
Rajesh R Subramanian wrote:
Or you are drunk again.
Maybe later.
Deja View - the feeling that you've seen this post before.
-
I am planning to learn "C++" as I am getting some freetime. I just checked the online articles and books available. Honestly, I am confused seeing many flavours C++ has. Which one should I learn ? I have seen VC++, Symbian C++ (mobile app) and some other flavours for linux. Which one do you recommend ? I have also gone through Nish's book, "C++/CLI in action" and found very interesting.
Here[^] is my Amazon.com list of C++ books. As you can see, I sugggest starting with "Accelerated C++" which is short, well written and teaches modern C++.
-
Rajesh R Subramanian wrote:
VC++ is the IDE developed MS for writing C++ programs. VC++ is not a variant of C++.
I have some basic idea on C++. But when I looked a VC++ code, it was entirely different and follow different style of writing than the normal C++, hence I thought it would be other flavor. Thanks for correcting it :) So are you telling that VC++ programs can be executed on any OS or is it windows specific ? And AFAIK, it uses MS C++ compiler, right ?
Rajesh R Subramanian wrote:
I'll recommend you something simpler, which has words like "beginner", "beginning", etc., in its title.
Any recommendations ?
As Rajesh stated, there are different flavours of C++ in use in VC++, such as ATL/WTL, MFC or even CLI/C++. When I developed platform independent C++, I used wxWidgets which can be used with VC++.
Deja View - the feeling that you've seen this post before.
-
Rajesh R Subramanian wrote:
VC++ is the IDE developed MS for writing C++ programs. VC++ is not a variant of C++.
I have some basic idea on C++. But when I looked a VC++ code, it was entirely different and follow different style of writing than the normal C++, hence I thought it would be other flavor. Thanks for correcting it :) So are you telling that VC++ programs can be executed on any OS or is it windows specific ? And AFAIK, it uses MS C++ compiler, right ?
Rajesh R Subramanian wrote:
I'll recommend you something simpler, which has words like "beginner", "beginning", etc., in its title.
Any recommendations ?
Christian Flutcher wrote:
So are you telling that VC++ programs can be executed on any OS or is it windows specific ? And AFAIK, it uses MS C++ compiler, right ?
Visual C++ programs (typically) make extensive use of Windows API, and so, clearly you should not expect it to run on other operating systems. But that doesn't stop you from using the VC++ IDE to write truly cross-platform software, sitting on a windows machine. In which case, you will stick to the standard c++ - not making use of Windows APIs and frameworks, template libraries, technologies, like MFC, ATL, COM, etc., if it is windows specific. I will recommend Accelerated C++, C++ primer, Thinking in C++ (my favorite, free and legally downloadable[^] version of this book is available) and there are just too many good books to specify. I am sure you will get plenty of other suggestions for books here by others. Also, everything by Stanley Lippman is good.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
-
I disagree. I don't regard it as an ideal first book on C++.
Kevin
My same exact thought. I totally agree that it is the best reference book, but that must definitely not be the first book for a beginner. :)
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]
-
As Rajesh stated, there are different flavours of C++ in use in VC++, such as ATL/WTL, MFC or even CLI/C++. When I developed platform independent C++, I used wxWidgets which can be used with VC++.
Deja View - the feeling that you've seen this post before.
Pete O'Hanlon wrote:
I used wxWidgets
Just went through that. Looks promising. Thanks.
-
I am planning to learn "C++" as I am getting some freetime. I just checked the online articles and books available. Honestly, I am confused seeing many flavours C++ has. Which one should I learn ? I have seen VC++, Symbian C++ (mobile app) and some other flavours for linux. Which one do you recommend ? I have also gone through Nish's book, "C++/CLI in action" and found very interesting.
Try Thinking in C++[^] by Bruce Eckel. The two volume eBook is free.