Where do I go next with C++

I need advice.

I have finished a book on C++(C++ From the ground up, Third Edition by Herbert Schildt). I know most of the basics of the language but want to do windows programming. how do i go ahead to learn this? I can't find any good book and most certainly don't have the money to go study programming. the only thing I really have troublr with is the .NET Framework. it is really confusing and a can't seem to figure out how the winForms works.

I don't like the windows help because it shows me what to type without explaining why. I NEED to know why!

So what I'm trying to ask here is if any one will be willing to help me figure it out. I make an excellent student and would apreciat ANY advice or help i can get as long as it's not windows help.

Thanks
Petrua

Comments

  • : I need advice.
    :
    : I have finished a book on C++(C++ From the ground up, Third Edition
    : by Herbert Schildt). I know most of the basics of the language but
    : want to do windows programming. how do i go ahead to learn this? I
    : can't find any good book and most certainly don't have the money to
    : go study programming. the only thing I really have troublr with is
    : the .NET Framework. it is really confusing and a can't seem to
    : figure out how the winForms works.
    :
    : I don't like the windows help because it shows me what to type
    : without explaining why. I NEED to know why!
    :
    : So what I'm trying to ask here is if any one will be willing to help
    : me figure it out. I make an excellent student and would apreciat ANY
    : advice or help i can get as long as it's not windows help.
    :
    : Thanks
    : Petrua
    :
    [color=Blue]Pick some project and program it - that is the only way to learn. Also, read other people's code - say, on codeguru.com.

    I do not understand your question on .NET - what do you mean by "I NEED to know why?". The .NET is a huge set of classes, so if you have a class - you MUST call its methods by using the operator '.' - no other way.[/color]
  • It's hard for me to just use those classes if i don't know how they work. i need to know how they work and which ones to use in the correct situation. i can't seem to find any explanations on how to correctly use them. Oh adn CodeGuru looks like a grate site.
    thanks
  • : It's hard for me to just use those classes if i don't know how they
    : work. i need to know how they work and which ones to use in the
    : correct situation. i can't seem to find any explanations on how to
    : correctly use them. Oh adn CodeGuru looks like a grate site.
    : thanks
    :
    [color=Blue]The .NET classes work by calling good old Win32 API functions (and, probably some new API, which will not be available with Win32, but only with .NET).

    If you wait until you "know" how everything works inside - you will never write any code. So, create a small .NET form, draw a rectangle in the random location on the form and try to detect a mouse click inside this rectangle. Once you succeed - add more logic to it so you can learn functions in .NET WinForms. When you get bored with this program - build Game Of Life program or some other simple exercise.[/color]
  • I agree, get a RAD tool like Visual Studio and fool around with it, make some programs. RAD tools are way easier to use than "raw" Windows API.

    The next step after reading a beginner book would otherwise be to read up on algorithms and data types. Linked list, search & sorting algorithms etc. And learn binary & hex if you don't know them, this is a must! Learning how to use object orientation in detail is good as well.

    Then there is all the details in C++ like STL, RTTI, exception handling, advanced heritage rules etc etc. It is a very complex language.

    Also, if you want to learn the Win API, you'll have to learn C, as the API is written in C. The difference between C and C++ isn't big though, and C is a must to know in case you ever want to work with embedded programming.

  • : : It's hard for me to just use those classes if i don't know how they
    : : work. i need to know how they work and which ones to use in the
    : : correct situation. i can't seem to find any explanations on how to
    : : correctly use them. Oh adn CodeGuru looks like a grate site.
    : : thanks
    : :

    I'm not waiting. i have been doing research and using the ide since i got it.
    have had some success in using it but can't seem to get all the programs to work. especially when i try to make the program save something.


  • : I agree, get a RAD tool like Visual Studio and fool around with it,
    : make some programs. RAD tools are way easier to use than "raw"
    : Windows API.
    :
    : The next step after reading a beginner book would otherwise be to
    : read up on algorithms and data types. Linked list, search & sorting
    : algorithms etc. And learn binary & hex if you don't know them, this
    : is a must! Learning how to use object orientation in detail is good
    : as well.
    :
    : Then there is all the details in C++ like STL, RTTI, exception
    : handling, advanced heritage rules etc etc. It is a very complex
    : language.
    :
    : Also, if you want to learn the Win API, you'll have to learn C, as
    : the API is written in C. The difference between C and C++ isn't big
    : though, and C is a must to know in case you ever want to work with
    : embedded programming.
    :
    :

    I know a bit about STL. I read on RTTI, seems that i have been using it with out even knowing it.

    is there a site that i can visit to read up on c, it looks a bit different from C++.
  • I'm sure there are plenty of good and bad tutorials on the net, I can't recommend one.

    I can however briefly sum up the main differences between C and C++:

    - C has no support for object orientation. It doesn't support classes, heritage, templates, function overlapping, operator overloading and all such generic object orientation functionality.

    - C uses stdio.h for general I/O functionality, instead of iostream.

    - C only allows variable declaration and initialization on top of each scope (code block). You can't declare variables in the middle of the code in C.

    - C allows more flexible (and dangerous) typecasting than C++. In C, any pointer can be typecasted to a void pointer implicitly. This is the method you use in C to write generic program designs.

    - C lacks exception handling. Errors have to be returned to the caller through one of the parameters.

    - C lacks inline functions as part of the standard.

    - C lacks a bool type.

    - C uses malloc() and free() for dynamic allocation, instead of new and delete. malloc/free can't be combined with new/delete. The dynamic allocation in C is actually smarter than the one in C++, since C++ makes a difference between allocation of single objects and arrays, something that often creates memory leaks. C also have the realloc() function.

    There are plenty of minor stuff as well, but I think I covered the main differences(?).
  • : I need advice.
    :
    : I have finished a book on C++(C++ From the ground up, Third Edition
    : by Herbert Schildt). I know most of the basics of the language but
    : want to do windows programming. how do i go ahead to learn this? I
    : can't find any good book and most certainly don't have the money to
    : go study programming. the only thing I really have troublr with is
    : the .NET Framework. it is really confusing and a can't seem to
    : figure out how the winForms works.
    :
    It's a huge problem. I have difficulty getting Windows forms to do what I want, and I've over twenty years' experience of programming. Graphical User Interface application interfaces just add layers upon layers of fiddling, and tools which make things easier for people with experience with the particular compiler make it harder to learn.

    It might be better to abandon .net and just use the Windows API, until you get used to the underlying structure of the system.

  • : It's a huge problem. I have difficulty getting Windows forms to do
    : what I want, and I've over twenty years' experience of programming.
    : Graphical User Interface application interfaces just add layers upon
    : layers of fiddling, and tools which make things easier for people
    : with experience with the particular compiler make it harder to learn.
    :
    : It might be better to abandon .net and just use the Windows API,
    : until you get used to the underlying structure of the system.

    and it is definitely not beginner friendly! why does the windows API still use C? wouldn't it be better to use c++?

  • Thanks, that cleared some questions i had.

    If i want to use the Windows API, can i combine C and C++? there seems to be a lot of functionality missing from c that C++ has that i would like to be able to use.

    Thanks for the advise everyone, it's helping a lot.
  • : and it is definitely not beginner friendly! why does the windows API
    : still use C? wouldn't it be better to use c++?

    Using the Windows API from C++ is just fine, syntax-wise you won't face many problems. Just a whole lotta more typecasting all over the program, which is probably a good thing.

    But the API is built in the "C way" of doing things. This applies to parameter passing to functions and error handling in particular. And it uses some old variable naming routines called Hungarian Notation, which is common in C. http://www.gregleg.com/oldHome/hungarian.html

    Also, knowing all the evil details in C/C++ helps a lot before starting with the Win API. For example, do you know about const correctness, how to use extern, static and volatile qualifiers, initialization rules of static and/or const variables, the integer promotion rules, the "usual aritmetic conversions", multi-dimensional array handling...?

    These are just examples, but all of the above qualify as important, necessary knowledge for a professional C/C++ programmer. Yet, most teachers and books fail to mention/explain all of them properly. Resulting in a huge amount of so-called professional programmers that don't know all of them, leading to the kind of unexpected bugs that they never will resolve.

    These are also typical things you get shot down with on job interviews at more serious companies.
  • : : and it is definitely not beginner friendly! why does the windows API
    : : still use C? wouldn't it be better to use c++?
    :
    : Using the Windows API from C++ is just fine, syntax-wise you won't
    : face many problems. Just a whole lotta more typecasting all over the
    : program, which is probably a good thing.
    :
    : But the API is built in the "C way" of doing things. This applies to
    : parameter passing to functions and error handling in particular. And
    : it uses some old variable naming routines called Hungarian Notation,
    : which is common in C. http://www.gregleg.com/oldHome/hungarian.html
    :
    : Also, knowing all the evil details in C/C++ helps a lot before
    : starting with the Win API. For example, do you know about const
    : correctness, how to use extern, static and volatile qualifiers,
    : initialization rules of static and/or const variables, the integer
    : promotion rules, the "usual aritmetic conversions",
    : multi-dimensional array handling...?
    :
    : These are just examples, but all of the above qualify as important,
    : necessary knowledge for a professional C/C++ programmer. Yet, most
    : teachers and books fail to mention/explain all of them properly.
    : Resulting in a huge amount of so-called professional programmers
    : that don't know all of them, leading to the kind of unexpected bugs
    : that they never will resolve.
    :
    : These are also typical things you get shot down with on job
    : interviews at more serious companies.

    The Hungarian Notation is one really helpful site, really interesting read! I would have to look into some of the stuff you mentioned because it was definitely not mentioned in my the book. you are right, he never even mentioned some of those.


Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories