Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Moving from C# to C++

Moving from C# to C++

Scheduled Pinned Locked Moved The Lounge
csharpc++questionlearning
108 Posts 36 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Karen Saxby

    you could try : www.freecomputerbooks.com/langCppBooks.html

    C Offline
    C Offline
    c2423
    wrote on last edited by
    #91

    Thanks - I do like free reference material!

    1 Reply Last reply
    0
    • S SteveL12234

      If you want something more advanced, an option are Herb Sutters books. A lot of the material from those books comes from http://www.gotw.ca/gotw/[^] Also if you want to read more than you ever cared about templates, C++ Templates The Complete Guide by Vandevoorde and Josuttis. To see how far templates can be taken, read Modern C++ Design, by Andrei Alexandrescu.

      C Offline
      C Offline
      c2423
      wrote on last edited by
      #92

      Great, thanks. I'll make sure I check out the link first to save myself some money!

      1 Reply Last reply
      0
      • J jjjm

        I suggest C++ Primer by Lippman & Lajoie. It should be about the right level.

        C Offline
        C Offline
        c2423
        wrote on last edited by
        #93

        Thanks for the suggestion - I'll be sure to take a look at this.

        1 Reply Last reply
        0
        • M Mike Corley

          Hi Chris - Those are some good responses you received. Effective C++ by Meyers is indeed excellent! Also an excellent book along those same lines is the "C++ Coding Standards" by Andrei Alexandrecu and Herb Sutter. The critical component is understanding the object model differences. C++ is based on deep copy (value model) semantics. Implies user defined object conbstruction, copy and assignment semantics (implies object identity preservation). C#/java is based on shallow reference semantics (everything is a reference to an object on the managed heap -- object identity is lost). C++ carries its servers type information "#includes" for compilation which affects how you structure code using well known OOD principles (Interface Segregation), (Dependency Inversion) so on an do forth which make use of object factories or whatever. c# uses metadata for compilation which is great. c++ uses rich memory model, static, stack, heap etc. i.e you determine object lifetime C# uses a more spartan model... all objects reside on managed heap... lifetime is non-deterministic. There's more of course... but in short, don't try to write C++ the C#/Java way because you'll get frustrated. Check out the following link for good content and book information: http://www.ecs.syr.edu/faculty/fawcett/handouts/webpages/CSE687.htm good luck, Mike

          C Offline
          C Offline
          c2423
          wrote on last edited by
          #94

          Hi Mike,

          Mike Corley wrote:

          Those are some good responses you received

          Yeah - with the number of things I will need to look at before deciding which ones to read first, I'm not sure I saved any time at all getting suggestions... I hadn't realised yet that C++ uses deep copy semantics - I think knowing this now will save me quite a bit of frustration! Thanks for taking the time to write such a complete answer. Thanks, Chris

          1 Reply Last reply
          0
          • N Nickolay Karnaukhov

            It's easy - real languages are based on the endless struggle between flexibility and efficiency. In this case C, C++ is real languages. As long as Perl, PHP, Basic, Pascal, etc... All these languages were developed by developers for developers of students who are willing to be developers. In most cases these languages are developed by one, two or three bearded guys in old shabby jeans like Stroustrop, Richie or Wirth. They were (and are) scientists acted for good and with all good in their minds. In other hand we have not real languages - build by marketing departments with all these wise guys with one thing in their mind - "Attract as much developers as possible". This languages are designed by companies and their software frameworks. There's no soul in these languages as they weren't built by one, two or three bearded scientists. And in this list we have Java and C#. Javascrip, Actionscript could also be listed here as they are only some kind of derivatives designed for specific purpose. So final idea is - if something is designed by one bearded scientist - it will live much longer than shaved greedy hired servant. You can treat it in any way you want - it is joke and truth same time. Now you've got definition!

            ------------------------------------------------------------ Want to be happy - do what you like!

            D Offline
            D Offline
            Drozzy
            wrote on last edited by
            #95

            Right... :doh: I don't know how I missed that obvious definition! Hm.. one thing bugs me though. Guide is more bearded than Bjarne. What gives? Do you meat to tell me that.. that ... C++ is not real, and it was python all along???!!!

            N 1 Reply Last reply
            0
            • C Carlosian

              I'll third the Meyers book(s). They are on the shelves of every good C++ programmer I know. If you already know C# well I would go ahead and get the Meyers books whether you think you are ready or not. Then as you read them and if he talks about a topic you don't understand in C++, go back to a C++ reference to understand it. By the time you are done you will have a much deeper understanding of how to use the language than if you just read a primer etc. For a comprehensive reference I like the C++ In a Nutshell O'Reilly book by Ray Lischner.

              C Offline
              C Offline
              c2423
              wrote on last edited by
              #96

              Third...The number of responses now I'm not sure you got in third necessarily... Thanks for the recommendation - I guess the more times it gets mentioned the higher it goes on my priority list (should that be queue?)

              1 Reply Last reply
              0
              • K Kevin McFarlane

                c2423 wrote:

                This is the second reccomendation for Stroustrup

                It's a book you should have at some point, but I'm not sure it's an appropriate first C++ book. I wouldn't know what a good starting-point is these days though.

                Kevin

                C Offline
                C Offline
                c2423
                wrote on last edited by
                #97

                Coincidently, I have problems recommending where to start for people learning C# - I'm never sure whether people should start with .Net 2.0 or any other version... Thanks, Chris

                1 Reply Last reply
                0
                • K Kevin McFarlane

                  The problem these days, especially in the Microsoft world is that you'll struggle to find pure C++ roles. It will be C++ and some .NET-based technology. Don't know what it's like in the *nix world though. Maybe C++ + Java + some scripting language?

                  Kevin

                  D Offline
                  D Offline
                  Dave Parker
                  wrote on last edited by
                  #98

                  Yeah you can kind of see why though, there are very few projects that benefit from the speed or control over the system to warrant C/C++ - most software is just boring data entry stuff and it makes sense to use something like C# for maintainability and less chance of bugs caused by typos.

                  1 Reply Last reply
                  0
                  • C c2423

                    Jealousy perhaps? Maybe after I read it I can work out why...

                    K Offline
                    K Offline
                    Kevin McFarlane
                    wrote on last edited by
                    #99

                    I think these guys reckon his C++ practice is poor. Have a look at the reviews on the Association of C and C++ Users (ACCU) web site.

                    Kevin

                    C 1 Reply Last reply
                    0
                    • L laniakea development

                      Hi, man! I wish to recommend You the Bruce Eckel's C++ books; you can download them free, and as I know, there was the whole standard C++ language described. The right studio supporting it is VS2005 or 2008; in Visual Studio 6, there is no full support for C++ language, for example, You can't use multiple templates as parameters in templates. So, try with Bruce Eckel's C++. You can find Eckel's site using google or like. Btw, I'm somehow impressed with Your expression that it seems C++ is more wanted by employeers than C#. Although personally I preffer C++ programming, I thought that C# was most wanted. OK, this is a nice news for me! Best regards!

                      D Offline
                      D Offline
                      dboone
                      wrote on last edited by
                      #100

                      That's true, Eckel' books are also very good. He did a two day seminar and I finally got C++ from C (back in 1993) so I can highly recomend him as someone who explains things well. He does a lot of teaching by example. His second edition of "Thinking in C++" includes a lot of STL which is very important.

                      1 Reply Last reply
                      0
                      • C c2423

                        Yeah, I'm trying to get into an industry that is slightly behind (think lots of C++ legacy projects ready to move to C#) and they all want C++ and *cough*Java. This is the second reccomendation for Stroustrup, so looks like I will have to take the plunge... Thanks, Chris

                        R Offline
                        R Offline
                        rockonedge
                        wrote on last edited by
                        #101

                        While other's most likely mean Stroustrup by this book http://www.amazon.com/C-Programming-Language-Special-3rd/dp/0201700735/ref=sr_1_3?ie=UTF8&s=books&qid=1247715368&sr=8-3[^] His new book http://www.amazon.com/Programming-Principles-Practice-Using-C/dp/0321543726/ref=sr_1_1?ie=UTF8&s=books&qid=1247715368&sr=8-1[^] is very well written and much less academical.

                        C 1 Reply Last reply
                        0
                        • K Kevin McFarlane

                          I think these guys reckon his C++ practice is poor. Have a look at the reviews on the Association of C and C++ Users (ACCU) web site.

                          Kevin

                          C Offline
                          C Offline
                          c2423
                          wrote on last edited by
                          #102

                          I'll take a look - thanks!

                          1 Reply Last reply
                          0
                          • D Drozzy

                            Right... :doh: I don't know how I missed that obvious definition! Hm.. one thing bugs me though. Guide is more bearded than Bjarne. What gives? Do you meat to tell me that.. that ... C++ is not real, and it was python all along???!!!

                            N Offline
                            N Offline
                            Nickolay Karnaukhov
                            wrote on last edited by
                            #103

                            Well... it's not a "bearded-not bearded" thing actually. Main idea is in the way of how language has been developed. These days when all mature languages were created - computer science was Science and not just commercial thing. 80-th changed the way of how PC looks like, 90-th changed the way how applications are developed. This century's decade could change application development model. As I can see each decade bring us one depression and one technological leap! Let's see what this decade will bring us. May be Microsoft will finally get real competitor on OS scene?

                            ------------------------------------------------------------ Want to be happy - do what you like!

                            D 1 Reply Last reply
                            0
                            • R rockonedge

                              While other's most likely mean Stroustrup by this book http://www.amazon.com/C-Programming-Language-Special-3rd/dp/0201700735/ref=sr_1_3?ie=UTF8&s=books&qid=1247715368&sr=8-3[^] His new book http://www.amazon.com/Programming-Principles-Practice-Using-C/dp/0321543726/ref=sr_1_1?ie=UTF8&s=books&qid=1247715368&sr=8-1[^] is very well written and much less academical.

                              C Offline
                              C Offline
                              c2423
                              wrote on last edited by
                              #104

                              StroustrupBook++ then? Thanks for the recommendation!

                              1 Reply Last reply
                              0
                              • N Nickolay Karnaukhov

                                Well... it's not a "bearded-not bearded" thing actually. Main idea is in the way of how language has been developed. These days when all mature languages were created - computer science was Science and not just commercial thing. 80-th changed the way of how PC looks like, 90-th changed the way how applications are developed. This century's decade could change application development model. As I can see each decade bring us one depression and one technological leap! Let's see what this decade will bring us. May be Microsoft will finally get real competitor on OS scene?

                                ------------------------------------------------------------ Want to be happy - do what you like!

                                D Offline
                                D Offline
                                Drozzy
                                wrote on last edited by
                                #105

                                A hoy! I'm originally from Ukraine, chernivtsy :-) I am not sure I am smart enough to tell a distinction between a good or "real" programming language and a bad or a "fake" one. Maybe you have the experience with a few of them? Which ones did you personally use? I think it is not so much a language as the programmer. If you pick up a book like "Code Complete", you'll see that there is a different between programming "in" a language (using only the features that the language has) and programming "into" a language (making up for the "missing" features using good practices). Now, I think today, almost all of the so called "bad/fake" languages you refer to, are grown-up over the years and matured enough to actually support good programming practices.

                                N 1 Reply Last reply
                                0
                                • D Drozzy

                                  A hoy! I'm originally from Ukraine, chernivtsy :-) I am not sure I am smart enough to tell a distinction between a good or "real" programming language and a bad or a "fake" one. Maybe you have the experience with a few of them? Which ones did you personally use? I think it is not so much a language as the programmer. If you pick up a book like "Code Complete", you'll see that there is a different between programming "in" a language (using only the features that the language has) and programming "into" a language (making up for the "missing" features using good practices). Now, I think today, almost all of the so called "bad/fake" languages you refer to, are grown-up over the years and matured enough to actually support good programming practices.

                                  N Offline
                                  N Offline
                                  Nickolay Karnaukhov
                                  wrote on last edited by
                                  #106

                                  Drozzy wrote:

                                  A hoy! I'm originally from Ukraine, chernivtsy

                                  Good. And I'm from Kharkov :-)

                                  Drozzy wrote:

                                  I am not sure I am smart enough to tell a distinction between a good or "real" programming language and a bad or a "fake" one

                                  Well, you ARE smart enough if you're posting messages, having your own opinion, and which is most important you can support productive conference (even with a bit of irony) :-)

                                  Drozzy wrote:

                                  Maybe you have the experience with a few of them? Which ones did you personally use?

                                  Sure. I've started with Basic on my first ZX Spectrum. When I got more powerful machine with 512 KB and two disk drives I've started hacking games and got good knowledge of Z80 Assembly. This machine also supported CP/M-80 OS where I got my first experience with Pascal 3.0 On my first PC (386SX20) I was digging with Turbo Pascal 6.0, Turbo C, and 16 bit x86 Assembly. These times I wrote my first antivirus using Turbo Assembler. This helped me to cure all my EXE files. Later on, with 486 machine I started to research Delphi 1, Delphi 2. Then when Pentium was affordable and Windows 95 is out - I've started with Delphi 3 and worked with it until Delphi 5 was out. Then WEB attracted me so much that I forgot about all desktop stuff and moved to HTML, JavaScript, VBScript and Flash (with ActionScript). When I got my first job I was working with Perl and ASP (Server side VBScript) with PostgresSQL and MSSQL 2000. Second job brought me PHP4 with MySQL and ASP.NET with MSSQL. Since then I mainly working with two fields in web development: PHP+MySQL and ASP.NET(C#&VB)+MSSQL. So here is an answer - yes I know many languages.

                                  Drozzy wrote:

                                  I think it is not so much a language as the programmer. If you pick up a book like "Code Complete", you'll see that there is a different between programming "in" a language (using only the features that the language has) and programming "into" a language (making up for the "missing" features using good practices). Now, I think today, almost all of the so called "bad/fake" languages you refer to, are grown-up over the years and matured enough to actually support good programming practices.

                                  Here you're totally right and here are nothing to argue about :-)

                                  -----------------------------------------------------

                                  D 1 Reply Last reply
                                  0
                                  • N Nickolay Karnaukhov

                                    Drozzy wrote:

                                    A hoy! I'm originally from Ukraine, chernivtsy

                                    Good. And I'm from Kharkov :-)

                                    Drozzy wrote:

                                    I am not sure I am smart enough to tell a distinction between a good or "real" programming language and a bad or a "fake" one

                                    Well, you ARE smart enough if you're posting messages, having your own opinion, and which is most important you can support productive conference (even with a bit of irony) :-)

                                    Drozzy wrote:

                                    Maybe you have the experience with a few of them? Which ones did you personally use?

                                    Sure. I've started with Basic on my first ZX Spectrum. When I got more powerful machine with 512 KB and two disk drives I've started hacking games and got good knowledge of Z80 Assembly. This machine also supported CP/M-80 OS where I got my first experience with Pascal 3.0 On my first PC (386SX20) I was digging with Turbo Pascal 6.0, Turbo C, and 16 bit x86 Assembly. These times I wrote my first antivirus using Turbo Assembler. This helped me to cure all my EXE files. Later on, with 486 machine I started to research Delphi 1, Delphi 2. Then when Pentium was affordable and Windows 95 is out - I've started with Delphi 3 and worked with it until Delphi 5 was out. Then WEB attracted me so much that I forgot about all desktop stuff and moved to HTML, JavaScript, VBScript and Flash (with ActionScript). When I got my first job I was working with Perl and ASP (Server side VBScript) with PostgresSQL and MSSQL 2000. Second job brought me PHP4 with MySQL and ASP.NET with MSSQL. Since then I mainly working with two fields in web development: PHP+MySQL and ASP.NET(C#&VB)+MSSQL. So here is an answer - yes I know many languages.

                                    Drozzy wrote:

                                    I think it is not so much a language as the programmer. If you pick up a book like "Code Complete", you'll see that there is a different between programming "in" a language (using only the features that the language has) and programming "into" a language (making up for the "missing" features using good practices). Now, I think today, almost all of the so called "bad/fake" languages you refer to, are grown-up over the years and matured enough to actually support good programming practices.

                                    Here you're totally right and here are nothing to argue about :-)

                                    -----------------------------------------------------

                                    D Offline
                                    D Offline
                                    Drozzy
                                    wrote on last edited by
                                    #107

                                    Well, this is when I stop arguing. If all your experience is real I surrender!

                                    Nickolay Karnaukhov wrote:

                                    Since then I mainly working with two fields in web development: PHP+MySQL and ASP.NET(C#&VB)+MSSQL.

                                    In this I can offer you only my condolences. I don't wish either of those (php/asp.net family) onto anybody. Out of curiosity - have you tried python?

                                    N 1 Reply Last reply
                                    0
                                    • D Drozzy

                                      Well, this is when I stop arguing. If all your experience is real I surrender!

                                      Nickolay Karnaukhov wrote:

                                      Since then I mainly working with two fields in web development: PHP+MySQL and ASP.NET(C#&VB)+MSSQL.

                                      In this I can offer you only my condolences. I don't wish either of those (php/asp.net family) onto anybody. Out of curiosity - have you tried python?

                                      N Offline
                                      N Offline
                                      Nickolay Karnaukhov
                                      wrote on last edited by
                                      #108

                                      Tried - yes, worked - no. As for my opinion Python if above my understanding. But who knows - may be I will use it some day, same as Ruby.

                                      ------------------------------------------------------------ Want to be happy - do what you like!

                                      1 Reply Last reply
                                      0
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes


                                      • Login

                                      • Don't have an account? Register

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • World
                                      • Users
                                      • Groups