hi...ammm how can i improve my self in C++ and to understand it and to be strong on it...
thanks in advance
Like many things practice helps a lot. Think of some programs you would like to write, find out how to do it and then do it!
As you will have noted you will probably have to find out how to do things so research and reading are also important.
A point I should make is that knowing C++ inside out on its own is not going to make you a good software developer. C++ is a tool, and it is designed for use in a certain range of applications, a wide range, but a range none the less. There are cases in which other tools or technologies will be more appropriate, and knowing which tools are best for a job and how to wield them is very important.
Many systems these days use a variety of systems, tools and languages: POSIX (UNIX, Linux), Win32/Win64 (Windows 9x. ME, NT, 2000, XP, Vista), etc; compilers, linkers, build tools, version control systems, databases, web servers, debugging tools, development environments etc.; C++, Java, HTML, XML, SQL, C#, VB.NET, Perl, Python, etc. As well as other technologies such as middleware, frameworks and libraries: CORBA, COM/DCOM/COM+, MFC, ATL, wxWidgets, Java, .NET, Qt, gtk, Boost, ACE and on and on and on.
Behind all these systems, tools and technologies which can be used to implement software systems are the foundation skills in analysis, design, communication, computer science and thinking in general.
That is, the only reason to know C++ well is to implement good software using it, and just knowing C++ is not enough. Just knowing English (or some other human language) alone does not make a person a great poet or author.
That having been said I suggest that your research and reading matter include something on analysis, design, software development, tools, systems, computer science, etc. as well as C++ reference and practice. I also recommend that you look at some other languages and technologies. It will give you some perspective. If you can you might also like to try building C++ code using different compilers, preferably on different operating systems, for example using Visual C++ on Windows XP and g++ on Linux. This is also a good experience as it will show you that compilers are not all created equal! Code that builds under one may well fail or run differently when built using another. This is because few if any compilers implement the whole of ISO standard C++ and those that do may have bugs. Unfortunately the subsets supported vary, and is worse with older compilers. Differences are also allowed by the C++ standard - I came across one the other day in which the maximum value of a random number was much larger for one compiler I used than another, thus causing all my output to be badly formatted!
Finally here is some suggested reading material. I have started with very basic texts as I have not idea of your proficiency.
For absolute beginners there are a couple of books:
"You Can Do It - A Beginner's Introduction to Computer Programming" by Francis Glassborow and Roberta Allen.
And the second book in the series:
"You Can Program in C++" by Francis Glassborow
People often recommend the following if you already have some programming experience:
"Accelerated C++" by Koenig and Moo
although I have not read any of these.
There are many books on programming in general that are good. I found
"The Practice of Programming" by Kernighan and Pike
to be particularly useful.
For general good C++ usage you should look at
"Effective C++" "More Effective C++" and "Effective STL" by Scott Meyers
and the more advanced
"Exceptional C++" and "More Exceptional C++" by Herb Sutter (See also http://www.gotw.ca/gotw/index.htm
"Modern C++ Design" by Andrei Alexandrescu
"Ruminations on C++" by Koenig and Moo
(Herb Sutter also has a couple of newer books out that I have not yet got around to reading: "Exceptional C++ Style" and "C++ Coding Standards" in conjunction with Andrei Alexandrescu - who works for a games company I think).
For C++ reference you should look at:
"The C++ Programming Language" 3rd Ed. by Bjarne Stroustrup
the C++ reference book from the man himself. You should also take a look at his book "The Design and Evolution of C++".
In addition you will most likely find that a couple of additional reference works will be of use. For the standard C++ library there is:
"The C++ Standard Library - a tutorial and reference" by Nicolai M. Josuttis - one of my most referred to books.
and for C++ templates there is:
"C++ Templates the Complete Guide" by David Vandevoorde and Nicolai M. Josuttis
The final reference work I am going to recommend is the C++ standard document itself which is published in book form by Wiley or is available for download as a PDF from the ANSI web site for $30 US (price the last time I checked):
"INTERNATIONAL STANDARD ISO/IEC 14882 Programming Languages C++"
the book is just titled:
"The C++ Standard"
This is _not_ an easy read, but is the word on how a C++ implementation should behave.
You might also like to consider obtaining a copy of the C language standard as well as the C++ standard makes references to it.
These are just some of the books I have found useful and are in no way a complete list. I suggest you try to find a real book shop that stocks at least some of these titles to see if any of them are for you. Alternatively you could look for reviews on the internet. One good place for book reviews is the ACCU site at http://accu.org/
, specifically http://accu.org/index.php/book_reviews
My final recommendation is to use the internet. Many tools and applications are available for free download. There are many articles on all sorts of technical things. Most often a few minutes with a search engine can turn up the information you require.