C++ resource of incomplete Guide (full version)--.
Sender: NULLNULL (empty), the letter area: VC. .
Title: c++ resource not fully guided (reprint).
Letters stand: Wuhan Baiyun Huang He stops (May 5, 2005 01:42:54 Thursday), the station mail. .
C++ resource of incomplete Guide (full version).
Source: www. . Csdn. . Net. .
Author: Yi and pottery.
Disclaimer: This article first appeared in May 2004 "CSDN development master", belongs to the magazine and the "programmer" magazine. .
All.
-------------------------------------------------- ------------------------------。 .
1, preface.
Numerous times to hear "I want to start learning C + +!" Cry, heard countless "C + + is too complicated, I really..
Learn ". Stan Lippman in the C, c++ Primer, pointed out that "C ++ is the most difficult.
Studies of high-level programming language ", people often" one of the "removed in order to express their awe of the C + +. Honest..
So, the C ++ programming language for learners, many insurmountable divide, architecture, and should be big.
Then subscribed and continue to expand the features ... ... In addition, reference materials and miscellaneous much hope but is it the learner. .
Step, in-depth user desires. Hope this one does not become your complete guide to C ++ learning journey Guide.
Light. .
The original intention of writing this article does not intend to lead everyone to experience the ancient history of the C + +, if you want to learn c++ calendar.
History and its early evolution of the development of many technologies, you should refer to Bjarne's "The Design and Evo. .
lution of C++》。 Of course not going to give you an all-encompassing Guide (not like they.
Is limited, and the second of profound helplessness C + +), which is only given some of us believe that those who want to learn C. .
+ + Readers of the most important and within reach of development and learning resources.
This article describes and analyzes a number of compilers, development environments, libraries, a small number of books and reference websites, and. .
And as far as possible, try to give an introduction to using these resources, on the same as we are able to have a beginner.
Beneficial. .
------------------------------------------------------------------------。.
--------。 .
2, the compiler.
In addition to any C + + language, compiler had never been so seriously. Because C + + is a. .
Fairly complex language, so the compiler also difficult to construct. Until recently we began to use completely.
Consistent with the standard C + + compiler (Oh, you may blame the compiler vendors can not meet the standards as soon as possible to provide..
Compiler, only their maintaining its own set of others are unwilling to accept the standard). ? You.
That it does not matter? Oh, no, you need is high and standardization of C + + compiler compatible environment. The long term. .
Only such a compiler for c++ developers is the most meaningful tool, especially for programming.
Language learners. One Emotion to code with portability, and let a language and its library of more widely used. .
Well, Yes, we're only going to introduce a number of recognized for excellent compiler.
2. .1 Borland C + +. .
This is a Borland C ++ Builder and Borland C ++ Builder X both development environments in the background.
Compiler. (Oh, why I divided it into two kinds of development environment you should be able to understand why, as Delphi..
7 changes to Delphi8 is revolutionary for two generations. ) Borland C ++ from the old Borland development tools vendors.
Effort to build. Compiler of the company a reputation for speed, space efficiency is known, Borland C + + family of compilers. .
For inherited this tradition is quality, belonging to the compiler. Standardization as early as 5. .5 version of the compiler in..
Compatible with standard C + +, reached 92. .73%. The latest version of Borland C + + Builder X in 6. .
0 version, the official said that 100% compliance with ANSI/ISO c++ standard and the C99 standard. Well ... This is what I referred to earlier.
"Fully in line with the standard C + + compiler." .
2。.2 Visual C++。.
This is our well-known Visual Studio and Visual Studio. . Net 2002, 2003 and 2. .
005 in the zone of Whidbey c++ compiler. The company developed by Microsoft. In Visual Studio 6. .0,.
There are too many places because the compiler can not occur with later match C + + standard can be criticized (Think you're using..
STL compiles times out those nasty error and warning). VC ++ 6. .0 on standardized C +.
+ Compatible only 83. .43%. However, with the C + + compiler designers Stanley Lippman and many C + + community. .
Group of people to join in the Visual Studio .NET 2003,., Visual c++ compiler has become a non-.
Often mature and reliable C + + compiler. Dr. . Dobb's Journal of the evaluation show that Visual C + +7. .1 On the standard C. .
C++ compatibility up to 98%, .22. became the CBX compatibility best before the compiler. A combination of powerful Visua.
l Studio. . NET development environment is a very good choice. As for the Whidbey time Visual C + +,. .
It seems Microsoft is most concerned about C ++/CLI ... we do not wish to comment on Microsoft's next generation c++ compiler on standardization.
How compatible, but he did more for. . NET (in fact you and I feel probably the same, Microsoft should not be..
When a standard c++ this fat to Borland, however Microsoft might not think so).
2. .3 GNU C + +. .
The famous open-source c++ compiler. Is the class of the UNIX operating system written c++ program of choice. Features a non-.
Always good portability, you can use a very wide range of platforms it is also prepared cross-platform, embedded. .
The program is a good choice. In addition, subject to the standards in this area has been very good, GCC3. .3 probably able to achieve the 96.
15%. However, due to its cross-platform features, speed, code size optimization on almost a little. .
Based on the GNU c++ compiler, such as:.
(1) Mingw. .
http://www。.mingw。.org/。.
GCC porting a version of Windows (Dev-C + + background). .
(2) Cygwin。.
http://sources. . Redhat. .com / cygwin /. .
GCC porting of another Windows version is part of the Cygwin, Cygwin is one of the Windows.
Unix emulation environment. Strictly speaking, is a simulation environment for GNU, which is "Gnu's Not Unix" to express the meaning. .
Thinking, Oh, pulling away, this is not our concern here in substance.
(3) Djgpp. .
http://www。.delorie。.com/djgpp/。.
This is the version of GCC for DOS transplantation. .
(4) RSXNT。.
http://www. . Mathematik. . Uni-bielefeld. . De / ~ rainer /. .
This is the GCC DOS and Windows versions of the transplantations.
(5) Intel C + +. .
Famous CPU manufacturer Intel produces compiler, Special Design for x86! for Intel.
Intel x86 CPU through a special structure optimization. In some applications, the particular numerical high of. .
Be applied, and only use Intel Compilers compile can significantly improve performance.
(6) Digital Mars C + +. .
Free download is available on your network, Zortech/Symantec c++ inheritance, whose predecessor was tragic.
C + + is also a four-nation war in one of the protagonists. .
------------------------------------------------------------------------。.
--------。 .
3, the development environment.
Development environment for programmers to the role of self-evident. Choose from morning till evening the environment is not easy. .
Things, especially in the IDE so rich. The following are our recommended some common c++ development cycles.
Environment, and does not include some small, rare IDE. Any one of them is feature-rich, can be used as day. .
Often developers use. For different levels of development, please see the text relating to the application object's description.
3. .1 Visual Studio 6. .0. .
This though is the Microsoft development environment of the old version, but in view of its successor version of the Visual.
Studio. . NET's huge body, and beginners are not as high as the functional requirements, it is recommended that the development of Central. .
Immersions to c++ for beginners to learn C ++ is the most essential parts, such as the part of the subset of C, of course, you don't mean.
Hope that he can support the latest C99 standard. In the daily development, there are still many companies use the classical stability. .
Environment, such as the author would like to see some companies who have seen it done GCC compiler to be replaced by mobile phone development purposes.
3. .2 Visual Studio. . NET 2003. .
As Microsoft officially released the latest version of development environment, where there are so many exciting.
Function. Combined with its latest C + + compiler. Configure the machine for good developers, use this to open. .
Environment will be able to meet most of their requirements. There is no intention to separate that Visual Studio Whidbey, though.
Visual Studio. . NET 2005 - Whidbey Community Preview has been released, but it would not be very stable, the reader. .
You can go to experience in person.
3. .3 Borland C + + Builder 6. .
This is not a Borland c++ development environment for the latest version. Choose it because it does not use Java.
Write the IDE, faster. It has a very good GUI form designer, and share a Delphi VCL. .
Because of these characteristics, it is more suitable for beginners to use. However, due to its central location, the GUI may be detrimental to the case.
C + + language learning. And its order to support this Object Pascal VCL library written on C + + is also carried out some. .
Private extensions. Makes it one had to accept the fact that: "Borland C ++ Builder 6..
Almost all of Delphi expert. ".
3。.4 Borland C++ Builder X。.
As mentioned above, although the version number and in front of the IDE is very similar, but in fact they do not. .
With two integrated development environment. C ++ Builder is a synchronization of Delphi and C ++ versions of the development cycle.
Environment, C + + BuilderX is entirely from the perspective C + +, a derived feature-rich IDE. The maximum special. .
Is cross-platform, cross-compiler, Framework, integrated, and there is a WxWindows based GU.
I designer. In particular, using pure C + + to rewrite the entire Framework, discard the previous version is helpless. .
For c++ developers, from the compiler, libraries, and to integrate this functionality is ideal. It is foreseeable that.
Borland C + + Builder X 2. .0 Is worth C + + enthusiasts look forward to. The only embarrassing, serving as a. .
C++ development tool, its IDE written in Java, less-than-ideal machine please consider carefully before installation.
.
3. .5 Emacs + GCC. .
Most of the above is the Windows environment of the integrated development environment. Linux developers tend to be.
Use Emacs to edit the file C + +, GCC to do with the Makefile to compile the command. Although it seems loose. .
But these things together or a 0 from the environment. If you are comfortable with using this environment to write path.
Order, your level should be enough to write this humble guide us in the text of the. .
3。.6 Dev C++。.
GCC is a very good compiler. In Windows on the C + + compiler and the standard has been a distance. .
When GCC is a Windows Developer drooling compiler. Dev-C ++ is able to let run GCC.
In Windows, a tool, as the integrated development environment, also provides comparable with professional IDE syntax highlighting. .
Code hinting, debugging, and other functions. As a result of using the Delphi development, take up memory, fast, more appropriate.
Lightweight learn and use. .
3。.7 Eclipse + CDT。.
But recently the famous Eclipse development tools. The latest issue of Jolt Award was awarded the Outstanding on. .
Of the sacred. Its magic is because it is itself written in Java, but Java than General write programs faster.
Much speed. And because of all the principles based on plug assembly, makes it possible to have such a plug CDT to E. .
Clipse into a C/c++ development environment. If you've been using Eclipse to write Java programs that may wish to use it.
C + + development experience the fun. .
------------------------------------------------------------------------。.
--------。 .
4, tool.
C + +, many auxiliary tools, we disaggregated to give you more:. .
4. .1 document class.
(1) Doxygen. .
Reference site: http://www. .doxygen. .org.
Doxygen is a suitable C style languages (such as C + +, C, IDL, Java and even C # and PHP), and. .
Open source, based on the command line documentation generator.
(2) C + +2 HTML. .
Reference site: http://www. .bedaux. .net/cpp2html/.
The C + + code into syntax highlighted HTML. .
(3) CodeColorizer。.
Reference site: http://www. . Chami. .com / colorizer /. .
It can take several language source code to HTML.
(4) Doc-O-Matic. .
Reference site: .com .doc-o-matic http://www../..
Doc-O_Matic for your C / C + +, C + +. . Net, Delphi / Pascal, VB. . NET, C # and Java programs. .
Or components produce accurate documentation. Doc-O-Matic symbols in using the source code and comments, as well as external documents.
File creation consistent with the popular document-style documents. .
(5) DocVizor。.
Reference site: http://www. . Ucancode. .net / Products / DocBuilder / Features. . Htm. .
DocVizor meets the object-oriented software developer's basic requirements — it allows us to see project C + +.
In the class hierarchy. DocVizor quickly generate a complete class hierarchy for the printed map, including from the third. .
Party libraries in those classes, in addition to DocVizor from information in the HTML file.
(6) SourcePublisher C + +. .
Reference site: http://www. .scitools. .com/sourcepublisher_c. .html.
To produce the source code to provide fast and intuitive HTML reports, including the code, class hierarchy, called and was transferred. .
With the tree, the tree contains and is included. Support for multiple operating systems.
(7) Understand. .
Reference site: http://www. .scitools. .com/ucpp. .html.
Of any size C or C + + project to help us better understand and prepare documentation. .
4. .2 code class.
(1) CC-Rider. .
Reference site: http://www. .cc-rider. .com.
CC-Rider for C / C + + program code for powerful visualization tools, through the interactive view, edit and self. .
Moving files to facilitate the maintenance and development of the program.
(2) CodeInspect. .
Reference site: .com .yokasoft http://www../..
A new C / C + + code analysis tools. It checks the source code we find the non-standard, possible to. .
And common error code.
(3) CodeWizard. .
Reference site: http://www. .parasoft. .com.
Advanced C / C + + source code analysis tools, using more than 500 automated coding standard to identify dangerous. .
But the compiler cannot detect code structure.
(4) C + + Validation Test Suites. .
Reference site: http://www. .plumhall. .com/suites. .html.
A set of compiler and libraries used to test the degree of fit for the standard code base. .
(5) CppRefactory。.
Reference site: http://cpptool. . Sourceforge. . Net /. .
CPPRefactory is a allows developers to refactor their c++ code. The purpose is to make C..
+ + Code refactoring can be efficient and simple as possible. .
(6) Lzz。.
Reference site: http://www. . Lazycplusplus. . Com /. .
Lzz is an automated many c++ programming of physical work tools. It can save us a lot of events and. ..
And makes coding more fun. Given a series of statements, Lzz will we create a header file and source files. .
(7) QA C++ Generation 2000。.
Reference site: http://www. . Programmingresearch. .com / solutions / qacpp. . Htm. .
It focuses on object-oriented c++ source code, with respect to the design, efficiency, reliability, and maintainability.
Warning information. .
(8) s-mail project - Java to C++DOL。.
Reference site: http://sadlocha. . Strefa. .pl/s-mail/ja2dol. . Html. .
The Java source code is translated into a corresponding c++ source code of the command line tool.
(9) SNIP from Cleanscape Software International. .
Reference site: http://www. .cleanscape. .net/stdprod/snip/.html. index.
Between coding and design of a gully filled easy to use C + + development tools, save a lot of editing and debugging. .
Events, it also allows developers to specify design pattern as an object model, automatically generated from the object model.
C + + classes. .
(10) SourceStyler C++。.
Reference site: http://www. . Ochresoftware. . Com /. .
For C/c++ source code for full control of the formatting and layout tools. Provide more than 75 of the format selected.
Item, and fully supports the ANSI C + +. .
4. compile the class. ... .3
(1) Compilercache. .
Reference site: http://www. .erikyyy. compilercache/.de/.
Compilercache is on your C and C + + compiler package script. Every time we compiled, letters. .
Install script, compile the results into the cache, once compiled the same things, the results will be removed from the cache instead.
Is re-compiled. .
(2) Ccache。.
Reference site: http://ccache. . Samba. . Org /. .
Ccache is a compiler cache. It looks like C/c++ compiler cache preprocessor, compile.
Improve the general speed of the build process usually 5 to 10 times. .
(3) Cmm (C++ with MultiMethods)。.
Reference site: http://www. . Op59. .net/cmm/cmm-0. .28/users. . Html. .
This is a c++ language extension. Read the source code output for Cmm C ++ source code feature is a c++ language.
Add support for multimethod. .
(4) The Frost Project。.
Reference site: http://frost. . Flewid. . De /. .
Forst makes you able to c++ programs like native c++ features the same use as well as virtual communication multimethod.
Number of parameters. It is a compiler shell. .
4. test and debug a class .4.
(1) CPPUnit. .
CppUnit is a based on the LGPL open source projects, the original version of the transplantations since JUnit, is a very excellent.
Show the open-source testing framework. CppUnit and JUnit as the main ideas from Extreme Programming. The main feature is. .
Is a unit test, and test automation.
(2) C + + Test. .
Reference site: .com .parasoft http://www../..
C + + Test is a unit testing tool that automates C and C + + classes, functions or components of the test. .
(3) Cantata++。.
Reference site: http://www. . Iplbath. .com/products/tools/pt400. . Shtml. .
Designed to meet the reasonable financial costs of using the tool lets engineers open.
Development unit testing and integration testing needs. .
(4) Purify。.
Reference site: http://www-900. . Ibm. .com / cn / software / rational / products / purif. .
yplus/index。.shtml。.
IBM Rational PurifyPlus is a complete runtime analysis tool designed to enhance the application. .
Reliability and performance. PurifyPlus errors and memory leak detection, application performance description, the code coverage.
Analysis functions combined in a single, complete kit. .
(5) BoundsChecker。.
BoundsChecker is a C + + run-time error detection and debugging tools. It is through the Visual Studi. .
O internal automated debugging process accelerated development cycles and shorter. Provide clear, detailed BoundsChecker.
The error analysis, many C + + is a unique and in static, stack and heap memory in the detection and diagnosis. .
Broken errors, as well as find memory and resource leaks. (6) Insure++。.
Reference site: http://www. . Parasoft. . Com /. .
An automated testing tool to run the program, check the subtle errors, such as memory, a memory leak.
Leakage, memory allocation errors, variable initialization errors, variable definition conflicts, pointer errors, library errors, logic wrong. .
Errors and algorithm errors, etc..
(7) GlowCode. .
Reference site: .com .glowcode http://www../..
GlowCode including memory leak checking, code profiler, function call trace functions. To C + + to open. .
Rounds provide complete error diagnosis, and run-time profiling tool kit.
(8) Stack Spy. .
Reference site: .com .imperioustech http://www../..
It can catch stack corruption, stack over run, stack overflow and other relevant stack fault. .
Wrong.
-------------------------------------------------- ----------------------。 .
--------。.
5, Library. .
In c++, the status of the library is very high. C + +, the father of Mr. Bjarne Stroustrup said on many occasions.
Design library to expand the capabilities to design more better than the syntax of speech. In reality, C + + library in various categories, to resolve. .
The problem is extremely broad, from lightweight to heavyweight. Many of them are so enlightening, or.
Is the hope of thinking born sigh masterpiece. As the number of very large database, but limited to the level of the author, many of them also. .
Do not understand. So those are some of the library is quite famous large library.
5. .1 Standard library. .
The standard library provides a c++ program with basic facilities. Although the c++ standard library with the c++ standard toss for many years.
Until the introduction of formally setting the standard, but the realization of the standard library was very gratifying to see a variety of real. .
Now, and has been proven to have an industrial-level strength of masterpieces.
(1) Dinkumware C + + Library. .
Reference site: .com .dinkumware http://www../..
P. . J. . Plauger preparation of high quality standard library. P. . J. . Plauger Dr. Dr. . Dobb's program design. .
Thousands of brilliant Prize winner. It was prepared by the library, Microsoft takes a long time and recently Borland has also been achieved.
The OEM's license, in its C / C + + products with Dinkumware library. .
(2) RogueWave Standard C++ Library。.
Reference site: http://www. . Roguewave. . Com /. .
This library in Borland C ++ Builder's early versions had been adopted by other libraries to help.
Changed. I do not recommend. .
(3) SGI STL。.
Reference site: http://www. . Roguewave. . Com /. .
SGI company of the c++ standard template library.
(4) STLport. .
Reference site: .org .stlport http://www../..
SGI STL library of cross-platform portable version. .
5. .2 "quasi" standard library-Boost.
Reference site: http://www. . Boost. . Org. .
Domestic mirror: http://www. .c-view. .org/tech/lib/boost/.htm. index.
Boost library is a through thoroughly tempered, portable, providing the source code of C + + library, the latter as a standard library. .
The c++ standardization process engine. Boost library from c++ standard Committee Library team members initiate.
, In C + + community implications, nearly 2,000 of its members. Boost libraries brings us the latest, coolest,. .
The most practical techniques, is nothing short of "authorized" standard library.
Boost the more famous there are so few libraries:. .
Regex。.
Regular expression library. .
Spirit。.
LL parser framework, using C + + code to direct the expression of EBNF. .
Graph。.
Graph components and algorithms. .
Lambda。.
The place is called the definition of short anonymous function object, it is useful functional features. .
concept check。.
Check generic programming concept. .
Mpl。.
Template meta-programming framework to achieve. .
Thread。.
Portable C + + multi-threaded library. .
Python。.
The C + + classes and functions being mapped to Python. .
Pool。.
Memory pool management. .
smart_ptr。.
5 smart pointers, smart pointers required reading to learn, a good reference from CUJ article:. .
Smart Pointers in Boost, well, it can be found, the CUJ online browsing.
Chinese see the author in "Dr. . Dobb's Journal software R & D Magazine "7 series on translation. .
Boost overall is very high, very high quality. And thanks to its cross-platform stressed.
Standard C + + on the emphasis, is the preparation of platform-independent, modern C + + developers the tools necessary. However Boost also. .
Many are experimental in nature, in the actual development of the practical need of care. And many of the Boost library in..
Of language function can be called an extension of the exhaustion of its compact construction means, do not rush to spend time studying. Bo. .
Ost another side, such as Graph this library is an industrial strength, well structured, well worth reading.
Excellent code, and you can rest assured that lots of use in the product code. .
5。.3 GUI。.
Among the many libraries in C + +, GUI is a relatively prosperous part of the library, but also more compelling. In the actual opening. .
In the hair, the choice of GUI library is a very important thing, let's review what alternative GUI library.
Their own characteristics and related tools. .
(1) MFC。.
The famous Microsoft Foundation Class Library (Microsoft Foundation Class). Generally learned VC + + in. .
Everyone should know this library. Although technically speaking, MFC is not very pretty, but it is built on Windo.
ws API on top of the work to make it easier for programmers, programming efficiency, reduction of a large number of the establishment of Windo. .
Ws program code must be written, at the same time it also provides all General c++ programming benefits, such as inheritance.
And packaging. MFC program written in various versions of the Windows operating system is portable, for example,. .
Under Windows 3.1-written code can easily be ported to Windows NT or Windows 95. But. ..
Is the official support of the recent development and growing trend micro. .
(2) QT。.
Reference website: http://www. . Trolltech. . Com /. .
Trolltech Qt is a multi-platform c++ graphical user interface application framework. It gives.
Application developers to build-the-art graphical user interface used for the required functions. Qt is fully object-oriented. .
It is easy to extend and to allow genuine component programming. Since 1996, earlier, entering into the commercial sphere, Qt. ..
It has become a worldwide success of thousands of applications that basis. Qt is also a popular Linux Desktop Central. .
Basis for the KDE environment, while at the same time it also supports Windows, Macintosh, Unix/X11 and many other platforms.
(3) WxWindows. .
Reference site: .org .wxwindows http://www../..
Cross-platform GUI library. Because of its class hierarchy is very much like MFC, so there article describes WxWindows from MFC to the. .
Code of the transplantations to enable cross-platform functionality. Through years of development is also an increasingly sophisticated GUI library that supports the same.
Like not weaker than the first two libraries. And is completely open source. Recent C + + Builder X's GUI design. .
It is based on this library.
(4) Fox. .
Reference site: .org .fox-toolkit http://www../..
Open source GUI library. The development of personal experiences from his own drawn an ideal GUI library should be. .
It is felt, and thus began the development of the library. Are interested can try.
(5) WTL. .
Based on one of the ATL library. Because of the wide use of ATL lightweight technologies such as manual, templates, and code size.
Inch, and the speed of optimization is done in place. Primarily for the use of groups for the development of lightweight COM network. .
Download Visual control of the developer.
(6) GTK. .
Reference site: .sourceforge .net http://gtkmm../..
C GTK is a famous open source GUI library. Gnome in Linux world has such a killer application. .
The GTK is the library for c ++ package version.
5. .4 Network communications. .
(1) ACE。.
Reference website: http://www. . Cs. . Wustl. . Edu / ~ schmidt / ACE. . Html. .
C++ libraries, super heavy network traffic development framework. ACE Adaptive communications environment (Adaptive.
Communication Environment) is free to use, open source object-oriented framework,. .
Which implements many for concurrent communication software core mode. ACE provides a rich set of reusable C ++ package.
Installed appearance (Wrapper Facade) and framework components can be common across multiple platforms of communication software tasks to complete. .
Including: event demultiplexing and an event handler for the distribution, signal processing, the service initialization, interprocess communications.
Letter, shared memory management, message routing, distributed services, dynamic (re) configuration, concurrent execution and synchronization, and so on. .
Etc..
(2) StreamModule. .
Reference site: http://www. .omnifarious. .org/StrMod/.
Designed to simplify the procedures for the preparation of a distributed database. Try to make the preparation of procedures for dealing with asynchronous behavior is more capacity. .
Easy, rather than using synchronization of shell from the asynchronous nature of the package.
(3) SimpleSocket. .
Reference site: http://home. .hetnet. .nl/~ lcbokkers/simsock. .htm.
This library to write socket-based client / server programs easier. .
(4) A Stream Socket API for C++。.
Reference website: http://www. . Pcs. . Cnu. . Edu / ~ dgame / sockets / socketsC + + / sockets. . H. .
tml。.
Another on Socket's package repository. .
5。.5 XML。.
(1) Xerces. .
Reference site: http://xml. .apache. .org/xerces-c/.
Xerces-C + + is a very robust XML parser, it provides authentication, as well as SAX and DOM API. .
XML validation on the document type definition (DTD, the Document Type Definition) has very good support.
In December 2001, and adds support for W3C XML Schema's basic integrity of open standards. .
(2) XMLBooster。.
Reference website: http://www. . Xmlbooster. . Com /. .
This library by producing special parser to greatly improve the speed of the XML parsing, and is capable of producing.
Health and the corresponding GUI program to modify the parser. In the DOM and SAX XML parsing approach outside the two mainstream offers. .
Another possible solution.
(3) Pull Parser. .
Reference site: http://www. .extreme. .indiana. .edu/xgws/xsoap/xpp/.
The library methods using pull parser. SAX parser in each of the bottom has a pull of the parse. .
R, the xpp put this layer exposed directly to you. The speed you want to take full account of the time it is worth trying.
(4) Xalan. .
Reference site: http://xml. .apache. .org/xalan-c/.
Xalan is used to convert XML documents to HTML, plain text or other XML document types XSLT Department. .
?í?÷.
(5) CMarkup. .
Reference site: http://www. .firstobject. .com/xml. .htm.
This is a way to use the XML parser EDOM. In many of the above ideas are very flexible and practical. Worth in D. .
OM and seek inspiration from SAX.
(6) libxml + +. .
http://libxmlplusplus。.sourceforge。.net/。.
libxml + + is a well-known libxml XML parser version of C + + package. .
5. .6 scientific computing.
(1) Blitz + +. .
Reference site: http://www. .oonumerics. .org/blitz/.
Blitz + + is a highly efficient numerical library, which is designed to establish a model is both. .
Like C + +, while at the same time as convenient than Fortran faster numerical computing environment. In General, in c++ it is written out.
Numerical procedure, about 20% slower than Fortran, so Blitz + + is to get rid of this shortcoming. Is profit. .
Use c++ template technology, program execution can even faster than Fortran. Blitz ++ is still in development.
For the common SVD, FFTs, QMRES other common methods of linear algebra does not provide, but the user can. .
Easily use Blitz ++ provides functions to build.
(2) POOMA. .
Reference site: http://www. .codesourcery. .com/pooma/pooma.
POOMA is a free high-performance C + + library for parallel processing for scientific computing. POOMA oriented right. .
Like the design facilitates rapid application development, parallel machines has been optimized to achieve maximum efficiency, and convenience in..
Industrial and research environments. .
(3) MTL。.
Reference website: http://www. . Osl. . Iu. .edu / research / mtl /. .
Matrix Template Library (MTL) is a high-performance of a generic component library that provides a variety of formats.
Matrix of a large number of linear algebra functions. Use in some applications where high performance compilers, such as In. .
Tel compiler from the resulting assembly code can be seen with the handwriting of the effectiveness of almost no different.
(4) CGAL. .
Reference site: www. .cgal. .org.
Computational Geometry Algorithms Library's purpose is to a large area of computational geometry. .
Some important solutions and methods to c++ library offers industrial and academic users.
5. .7 Game development. .
(1) Audio/Video 3D C++ Programming Library。.
Reference website: http://www. . Galacticasoftware. .com / products / av /. .
AV3D is a cross-platform, high-performance c++ library. The main characteristic is to provide the 3D graphics and sound support (S..
B, and S3M), control interfaces (keyboard, mouse, and remote sensing), XMS. .
(2) KlayGE。.
Reference Site: http://home. . G365. .net / enginedev /. .
Domestic game development experts themselves for c++ game engine. KlayGE is an open source, cross-level.
Platform game engine, and use Python for scripting language. KlayGE released under the LGPL agreement. Thank Gongmin Min. .
As the Chinese game development contribution to the cause.
(3) OGRE. .
Reference site: http://www. .ogre3d. .org.
OGRE (Object-oriented graphics rendering engine) is developed using C + +, using a flexible object-oriented 3D engine. .
Its purpose is to allow developers to more easily and directly to development based on 3D hardware device application or game.
Engine library for more underlying system libraries (such as: Direct3D, and OpenGL) were all using the details. .
Abstract, and based on a real-world object interfaces and other classes.
5. .8 Thread. .
(1) C++ Threads。.
Reference Site: http://threads. . Sourceforge. . Net /. .
The library's goal is to give programmers delivers easy-to-use classes that are inherited to provide in a Linux environment.
Is difficult to see a lot of threads respect. .
(2) ZThreads。.
Reference Site: http://zthread. . Sourceforge. . Net /. .
An advanced object-oriented, cross-platform c++ threading and synchronization library.
5. .9 Serialization. .
(1) s11n。.
Reference Site: http://s11n. . Net /. .
An STL's c++ library that is used to serialize the POD, STL containers as well as user-defined type.
(2) Simple XML Persistence Library. .
Reference site: .sourceforge .net http://sxp../..
This is a sequence of the object into XML, lightweight C + + library. .
5. .10 string.
(1) C + + Str Library. .
Reference site: http://www. .utilitycode. .com/str/.
Operations and the character string libraries, support for Windows and supports a variety of platforms gcc. To provide highly optimized. .
Code, and it supports multi-threading environments and Unicode, along with regular expression support.
(2) Common Text Transformation Library. .
Reference site: .sourceforge .net http://cttl../..
This is a string to parse and modify STL library. CTTL substring class can be used to compare, insert,. .
Replace and use EBNF grammar for resolution.
(3) GRETA. .
Reference site: http://research. .microsoft. .com/projects/greta/.
This is Microsoft Research's researchers developed to handle regular expression library. In a small match. .
There are very good performance.
5. .11 Consolidated. .
(1) P::Classes。.
Reference Site: http://pclasses. . Com /. .
A highly portable c++ application framework. The current focus on types and thread-safe signal/slot.
Mechanism, i / o system, including plug-in based network protocol transparent i / o structure, based on plug-in application information. .
Logging framework, accessing sql databases and so on.
(2) ACDK - Artefaktur Component Development Kit. .
Reference site: .sourceforge .net http://acdk../..
This is a platform-independent C + + component framework similar to Java or. . NET, the framework of the (reflection,..
Threads, Unicode, waste collection, I/O, and network utilities, XML, etc.), as well as Java, P..
erl, Python, TCL, Lisp, COM and CORBA integration. .
(3) dlib C++ library。.
Reference website: http://www. . Cis. . Ohio-state. . Edu / ~ kingd / dlib /. .
A variety of classes. Large integer, Socket, threads, GUI, container classes, as well as visit the phasmatodea.
Recorded in the API and so on. .
(4) Chilkat C++ Libraries。.
Reference website: http://www. . Chilkatsoft. .com / cpp_libraries. . Asp. .
This is provided, e-mail, zip code, S/MIME, XML, etc..
(5) C + + Portable Types Library (PTypes). .
Reference site: http://www. .melikyan. .com/ptypes/.
This is the STL's relatively simple alternatives, and portable multi-threading and networking libraries. .
(6) LFC。.
Reference Site: http://lfc. . Sourceforge. . Net /. .
Oh, this is another attempt to provide all of the c++ library.
5. .12 Other libraries. .
(1) Loki。.
Reference website: http://www. . Moderncppdesign. . Com /. .
Oh, you may complain that I should have and Boost it, along with the introduction of a pilot nature library. Author loki.
The C + + template functions to an extreme. And try to levels similar to design patterns such thinking things through. .
Library to provide. It also provides smart pointers such useful functions.
(2) ATL. .
ATL(Active Template Library)。.
Is a compact, efficient, flexible class, these classes to create interoperable COM components that provide basic. .
Facilities.
(3) FC + +: The Functional C + + Library. .
This library provides a number of functional language is essential. Belong to to expand with the library of a representative of the language.
For. If you want to look for other points in OOP than fun, go look at functional programming world. Great. .
Architect Peter Norvig Teach Yourself Programming in Ten Years "in article will transmit.
As the number of type language learning should be at least 6-class programming language. .
(4) FACT!。.
Reference website: http://www. . Kfa-juelich. .de / zam / FACT / start / index. . Html. .
Another realization of functional language features of the library.
(5) Crypto + +. .
Provides a handle password, message authentication, a one-way hash, public key cryptography features free library.
There are a lot of very exciting or very useful C + + library, limited to our level and the articles of chapter. .
Picture can not be included. In these already contains an introduction to the library recently, because not every us.
Are used, so inevitably there are biases, the reader is forgiven. .
------------------------------------------------------------------------。.
--------。 .
6, books.
Ago Mr. Xiong Jie has written about relative to the Java programming language, C + + plethora of good books. Glory. .
The programmer "magazine article on C ++ programming of the four" will also be present in almost all areas.
Made a comprehensive introduction to the classic book, any book that is a lot of comments at this time seems more than in the. Personal humble opinion. .
Unless you intend to C + +, as the only interest or survival, and general readers do not have enough time and necessary.
All will be more than 20 books to read. More valuable is the glory of another article by Mr.: "at least read. .
Reading of nine books on C ++, you can choose from the following address: Browse to this man.
http://www. . Royaloo. .com/articles/articles_2003/9CppBooks. . Htm. .
Here are a few books for walking in c++ beginner journey is our most recommend to everyone:.
(1) "C + + Primer". .
Oh, maybe you will complain that why don't we first introduced the TCPL, but to walk in the way of learning, of beginners.
The contents of the book is more comprehensive, easy to understand in more detail, we call it "C + + Super Collection" is not over. With. .
A good solution to the C + + Answer Book "Primer can aid your learning path.
(2) "Essential C + +". .
If the C ++ Primer on c++ Super saucy field, then this book as a master c++ overall concept.
Well-deserved. As. " . NET bigger picture, "a book that allows readers to full embrace. . NET, C + + book describes the most crucial. .
All topics. Books are not thick, content refinement is the C ++ Primer on the subject of gossip, back to the readers.
Gu for. .
(3) 《The C++ Programming Language》。.
Bjarne bring you the C + + tutorial can really tell you how to use the sorption of the C + +, the only one. .
Book. Although as "xxx programming language" this book will give you a full moon, start to finish.
Through feeling, but this book is definitely not for beginners to read. If you think you are an experienced C + + way. .
Sequence, then at least have to repeatedly stressed by Mr Bjarne some contents.
(4) "Effective C ++"," More Effective C + +". .
Yes, as some C ++ lovers to read and read both this work to distinguish whether you are.
C + + expert. We are also highly recommended these two books. Introduction C + + in a variety of expertise inside the book, these two. .
This is the most close to the essence of language, look at the most can be completely changed after the feel of the book, read this book you need each day shalt.
.
Technical Books eyes of the beholder, not too much anti-sense comments from the readers choose the most suitable for their own preferences. .
The best way to book party.
-------------------------------------------------- ----------------------。 .
--------。.
7, resource website. .
As we can through the computer's history, an important figure in the history of the development computer, C + + related figures.
The site also allows us to be the most valuable reference and experience, the following figures we see no introduction. .
Necessary only because of the following characters in c + + niche as we all know, we only keep related resources listed to.
For readers to learn some of them are working in Bell Labs, and some work in the well-known compiler vendors, and some not. .
Promoting the standardization of the language of broken, some readers wrote more correct for ….
(1) Bjarne Stroustrup. .
http://www。.research。.att。.com/~bs/。.
(2) Stanley B. . Lippman. .
http://blogs。.msdn。.com/slippman/。.
Chinese http://www. . Zengyihome. .net / slippman / index. . Htm. .
(3) Scott Meyers。.
http://www. . Aristeia. . Com /. .
(4) David Musser。.
http://www. . Cs. . Rpi. . Edu / ~ musser /. .
(5) Bruce Eckel。.
http://www. . Bruceeckel. . Com. .
(6) Nicolai M。. Josuttis。.
http://www. . Josuttis. . Com /. .
(7) Herb Sutter。.
http://www. . Gotw. . Ca /. .
(8) Andrei Alexandrescu。.
http://www. . Coderncppdesign. . Com /. .
Mr. Hou Jie (9).
http://www. . Jjhou. . Com. .
(10) Mr. Mengyan.
President busy at work, obsessed with technology, no personal home page, on the President's work can be CSDN. .
Columns and Hou's home page.
(11) Mr. glory. .
http://www。.royaloo。.com/。.
(12) Mr. Pan Aimin. .
http://www。.icst。.pku。.edu。.cn/panaimin/pam_homepage。.htm。.
In addition to the master's home, the following comprehensive class to learn C + + reference site is we are very willing to tell you. .
Recommended:.
(1) CodeProject. .
http://www。.codeproject。.com。.
(2) CodeGuru. .
http://www。.codeguru。.com。.
(3) Dr. . Dobb's Journal. .
http://www。.ddj。.com。.
(4) C / C + + Users Journal. .
http://www。.cuj。.com。.
(5) C-dimensional perspective. .
http://www。.c-view。.org。.
(6) allaboutprogram. .
http://www。.allaboutprogram。.com。.
Other information. .
(1) ISO IEC JTC1/SC22/WG21-C + +: standard c++ as the authoritative reference.
http://anubis. . Dkuug. .dk/jtc1/sc22/wg21 /. .
(2) C-c++ FAQ LITE — Frequently Asked Questions: most comprehensive c++ FAQ.
http://www. . Sunistudio. .com / cppfaq / index. . Html. .
C/C + + newsgroups:.
You may wish to try to ask and answer questions from here, a lot of good Q & A resource. .
(1) 。.alt。.comp。.lang。.learn。.c-c++。.
The simpler, if you are a newbie like me. .
(2) 。.comp。.lang。.c++。.moderated。.
Ah, this is clearly higher level. .
(3) 。.comp。.std。.c++。.
If you need to discuss the standard C + + related topics so. .
------------------------------------------------------------------------。.
--------。 .
8, is forced to write the conclusion.
The end of the current situation is summed up and looking forward to the future. Although born out of the C C + + from the beginning, the way the storm. .
Difficult Rocky came up, but in any case C ++ has achieved the status of the industrial base. A large number of related articles listed.
Resources is the best proof of the industry with a large number of products written in C + + code and a large number of C + + professional projects. .
Division is the most direct evidence. At the same time, we can see that the individual computers professional colleges and universities are offering a C + + this door.
Course, the network for the discussion of learning C + + also has never ceased. However, in Java and. . NET the two companies. .
The development platform of the siege, to c++ is getting a "no".
C + + in the business-oriented software development, such as convenience in the development of Java and C # than it did much worse. .
One such issue is the c++ language itself is more complex, the steep learning curve comparison, another problem is the C ++ standard.
Standardization too long, lost a lot of growth opportunity, spend a lot of effort in the struggle between the manufacturers. .
, And the c++ standard library is a comprehensive application development framework also missing too much is too much content, various third parties.
Framework class library and another in the consistency and completeness can not and compared the framework with the platform. Is C + + really. .
To exit the stage of history?.
From C + + the current level of activity, and current application is complete can be sure that C + + is still the software industry. .
Basis, nor from the stage of history. In addition to those from Boost, Loki library we can see the C + +.
Very active development, new technologies and new thinking for a very radical, C + + is still widespread concern. From ACE in high. .
Performance in the field of communications, as well as this library in MTL numerical calculation of the areas of performance, we can see.
C + + applications in high-performance under the irreplaceable role, and embedded systems development platform that memory is limited. .
, Such as the Symbian OS, C + + has played and will play a greater role. The foreseeable future.
No matter how the top of the application software changes, it will be the underlying core is C / C + + such a system-level software written. .
, Such as the Java virtual machine,. .NET Framwork. Because only this kind of system-level software to complete the sender.
Command machines. .
Need to see is the two trends, one c++ trends becomes more complex, more academic, through templates.
And other factors have the potential to construct more sophisticated syntax library into a modern C + +, hot spots, although the use of library implementation. .
New programming paradigms, and design patterns, etc. have a meaning, it has to be able to easily open.
Hair tool, but more is to C + + becomes more powerful, more complex and more difficult to understand, seems to have more. .
Academy, had to say it was toward the edge of the road. Another trend is the c++ to mainstream enterprise applications open.
Hair has been gradually withdrawn, ERP software development companies like basically does not consider C + +, unless the need for examination. .
Taking into account the performance or and legacy code integration of these factors. C ++ language had retreated to the system level, become the software industry.
Is based on the trend. But think, What really is the retreat? Since the STL there, countless people surging. .
Start support C + +, they cry out "I saw the night away, with the goal of software engineering. I saw you.
Maintainable code. "Yes, STL has done so well under the maintainability. But what about us? STL to C + + Shop..
The path of modern software engineering, and in the upper area of the application software development is not a separate site belongs to early.
C + +, many programming languages have done very well, crazy supporters will not hesitate to say that we should support. .
C + +, because it is the world's best language. But frankly, you're seeing really that hard? maybe only.
Trying to avoid some of the facts. C + + is good, this is undeniable, STL in C + + once appeared to take the most brilliant. .
Moment, but now it seems ... I had a mentor: truly the STL application very vividly.
Conservative to say that China is not more than 200 people, may not be joined to make C + + STL toward the direction it should develop. .
Better, but it seems now that C ++ should also look to really belongs to him by the Holy land ....
-------------------------------------------------- ----------------------。 .
--------。.
References. .
This article is written, the following resources:.
1, "programmer" in February 2004, in March, "C + + programming of the classics" glory. .
2, water ' wood Tsinghua BBS C ++ Digest.
3, http://jjhou. . Csdn. . Net. .
4、http://www。.royaloo。.com。.
5, http://www. . Zengyihome. . Net. .
6, C/c++ developers: enrich your XML Toolbox http://www-900. .ibm. .com/developerW.
orks / cn / xml / x-ctlbx / index. . Shtml. .
-Transcript-.
-. .
* Source: · Wuhan Baiyun Huanghe station bbs. .whnet. · .edu. .cn.