C++: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
[[Image:C++.png|right|250px]] | [[Image:C++.png|right|250px]] | ||
A language in the [[CPL]] branch of the [[Algol]] family of programming languages, C++ is basically AT&T [[C]] with the object-oriented features of [[Simula]]. While you can compile and run C programs in an C++ environment and some C++ compilers are actually just C compilers with a pre-processor, C++ is actually a very distinct language to C that by design uses mostly the same syntax. | A language in the [[CPL]] branch of the [[Algol]] family of programming languages, C++ is basically AT&T [[C]] with the object-oriented features of [[Simula]]. While you can compile and run C programs in an C++ environment and some C++ compilers are actually just C compilers with a pre-processor, C++ is actually a very distinct language to C that by design uses mostly the same syntax. | ||
C++ was first implemented as a rudimentary pre-processor for C in 1979 and was then known simply as '''C with Classes''', the name was changed to C84 in 1983 and when people realised that it would clash with the naming convention for the [[ANSI]] C formal standard process that had already begun it was changed again to C++ in 1985. | |||
==A list of OS/2 implementations of C++== | ==A list of OS/2 implementations of C++== | ||
Line 130: | Line 132: | ||
==Links== | ==Links== | ||
* [http://www.computerworld.com.au/article/250514/a-z_programming_languages_c_/ The A-Z of Programming Languages: C++] - An interview with Bjarne Stroustrup - From [[Computerworld]]. | |||
====USENET==== | ====USENET==== | ||
* [news:comp.lang.c++.moderated comp.lang.c++.moderated] - Moderated C++ discussion group - Go to the [https://groups.google.com/forum/#!forum/comp.lang.c++.moderated Google groups version] if your ISP does not offer USENET access or you are in any other way newsgroup challenged. | * [news:comp.lang.c++.moderated comp.lang.c++.moderated] - Moderated C++ discussion group - Go to the [https://groups.google.com/forum/#!forum/comp.lang.c++.moderated Google groups version] if your ISP does not offer USENET access or you are in any other way newsgroup challenged. |
Revision as of 11:43, 15 February 2016

A language in the CPL branch of the Algol family of programming languages, C++ is basically AT&T C with the object-oriented features of Simula. While you can compile and run C programs in an C++ environment and some C++ compilers are actually just C compilers with a pre-processor, C++ is actually a very distinct language to C that by design uses mostly the same syntax.
C++ was first implemented as a rudimentary pre-processor for C in 1979 and was then known simply as C with Classes, the name was changed to C84 in 1983 and when people realised that it would clash with the naming convention for the ANSI C formal standard process that had already begun it was changed again to C++ in 1985.
A list of OS/2 implementations of C++
- Borland C/C++ - Commercial - Discontinued
- Cint - Open source - Current - Interpreter from CERN, intended for educational use
- EMX Compiler - Open Source - Discontinued
- GCC C/C++ Compiler and Linker - Open Source - Current
- Innotek GCC - Open Source - Discontinued
- IBM C Set++ for OS/2 - Commercial - Discontinued
- IBM VisualAge C++ - Commercial - Discontinued
- Metaware High C/C++ - Commercial - Discontinued
- NDP C/C++ - Commercial - Discontinued
- OpenWatcom C/C++ - Open Source - Current
- TopSpeed C++ - Commercial - Discontinued
- Zortech C++ - Commercial - Discontinued
OS/2 C++ libraries and class libraries
If the compiler you use supports both C and C++, you can use C libraries with your C++ programs and vise versa, however using C++ libraries from C can be a bit kludgey and require you to write bindings, while using C libraries with C++ is less problematic it can also require you to write some interfaces, take a look at the C page for available C libraries.
- C/Database Toolchest - Library for database creation and maintenance - Commercial - Current.
- CdBFile - For reading/writing .dbf/xBase files - Open Source - Discontinued
- CThrough - Graphics class library - Commercial - Discontinued
- dbfLIB++ - A tool that allows you to work with xBase databases - Commercial - Discontinued.
- e_Comm - Communications and networking - Commercial - Discontinued.
- e_Db - Database engine - Commercial - Discontinued.
- e_Fs - Virtual file system - Commercial - Discontinued.
- Kroni's Classes - Class library with sundry PM functions - PostcardWare - Discontinued.
- LZ4 - Compression library - Open source - Current
- Net.h++ - Networking and comms - Commercial - Discontinued.
- The Open Objects Library (OOL) - Originally freeware, now open source - Discontinued.
- OpenZinc - Multi-platform UI library - Originally commercial, now open source - Current.
- Snappy - Compression lib. - Open Source - Current.
- Socket++ - Networking library - Open Source - Discontinued.
- Threads.h++ - Multi-threading - Commercial - Discontinued.
- Tools.h++ - Foundation classes - Commercial - Discontinued.
- V C++ GUI Framework - Multi-platform - Open source - Discontinued
- WebM libvpx - VP8/VP9 streaming video - Open Source - Current
- ZGRAF - Graphing library - Commercial - Current
- Zipios++ - Compression class lib. - Open Source - Current
Foreign libraries with C++ bindings
- shwild - Wildcard pattern matching - Open Source - Current.
GUI and application generators with C++ output
- Hockware VisPro/C++ - GUI Creator - Commercial - Discontinued
- JBA Guidelines - GUI/Database/Application creator - Commercial - Discontinued
- Professor Owl - Open Source - Discontinued - For Borland OWL only.
- Vestronix Pro C - Database and spreadsheet application generator - Commercial - Discontinued
Translators that generate C++ output
- Oracle Pro C - SQL > C++ - Commercial - Discontinued
Workframes and or IDE's
- CommonPoint - Commercial - Discontinued
- Object WorkBench - Shareware - Discontinued
Code verifiers, beautifiers, visualisers and other C source code utilities
- CC-Rider C++ - Commercial - Discontinued - Static analyser, beautifier and visualiser.
OS/2 text & programmers editors with C++ support
- Boxer - C++ support included by default - Commercial - Discontinued
- BRIEF - C++ support included by default - Commercial - Discontinued
- Elvis - C++ syntax support included by default - Open source - Current.
- Enhanced Editor - Has C++ syntax highlighting built in, auto-formatting and automatic code summary as a separate download.
- FTE - Has support for syntax highlighting, code folding and syntax-aware autoindent.
- Future Wave Editor - C++ syntax support included by default - Shareware
- jEdit - Java based - Open source - Current
- LPEX - Commercial - OS/2 version discontinued
- NEdit - XFree86 - Autoindent, autocomplete and syntax highlighting.
A list of DOS implementations of C++
- Borland C++ - Commercial - Discontinued
- Borland Turbo C++ - Commercial - Discontinued
- Cint - Open source - Current - Interpreter from CERN, intended for educational use
- EMX Compiler - Open Source - Discontinued
- Metaware High C/C++ - Commercial - Discontinued
- Microsoft C/C++ 7.0 - Commercial - Discontinued
- OpenWatcom C/C++ - Open Source - Current
- TopSpeed C++ - Commercial - Discontinued
- Digital Mars C/C++, Symantec C++, Zortech C++ - Commercial
DOS libraries and class libraries
- C/Database Toolchest - Library for database creation and maintenance - Commercial - Current.
- CdBFile - For reading/writing .dbf/xBase files - Open Source - Discontinued.
- e_Db - Databse engine - Commercial - Discontinued.
- ZGRAF - Graphing library - Commercial - Current
DOS text & programmers editors with C++ support
- Boxer - C++ support included by default - Commercial - Discontinued
- BRIEF - Commercial - Discontinued
- Elvis - C++ syntax support included by default - Open source - Current
- FTE - Has support for syntax highlighting, code folding and syntax-aware autoindent.
A list of C++ implementations that run under WinOS/2
- TopSpeed C++ - Commercial - Discontinued - Cross compilation from DOS or OS/2 only
WinOS/2 compatible libraries and class libraries
- C/Database Toolchest - Library for database creation and maintenance - Commercial - Current - Note that the correct library for Win16b development is called the DOS library (but contains Win 16b libs as well) and not the Windows one.
- Net.h++ - Networking and comms - Commercial - Discontinued.
- Tools.h++ - Foundation classes - Commercial - Discontinued.
- V C++ GUI Framework - Multi-platform - Open source - Discontinued
Publications
- Bjarne Stroustrup: The C++ Programming Language (4th edition) - 1368 pages - 2013 - In print - ISBN 0321958322
- More or less the standard text for learning C++, requires some prior programming knowledge, preferably C.
- Bjarne Stroustrup: The C++ Programming Language (2nd edition) - 720 pages - 1990 - Out of print - ISBN 0201539926
- An older version of the same book, again not for beginners but at half the size of the current version this is in some ways a better read for those that are using vintage compilers such as VisualAge C++.
- Margaret A. Ellis & Bjarne Stroustrup: The Annotated C++ Reference Manual - 457 pages - 1990 - In print - ISBN 0201514591
- In some ways better than the other Stroustrup works as a reference book, the explanations of some of the rules are much clearer. Not a tutorial, not for beginners.
- David R. Tribble: Incompatibilities Between ISO C and ISO C++ - Old but highly useful document for those wanting to port C code to C++
Tutorials and other learning material
- EDM/2 has its own C++ tutorial written by Terry Norton:
- MIX Software has a number of video courses available that focus on teaching C++, both for the beginner and tackles more advanced topics as well, note that these are delivered in proper old school VHS cassette format.
- The author of C++, Bjarne Stroustrup has a lot of introductionary material on his homepage
Links
- The A-Z of Programming Languages: C++ - An interview with Bjarne Stroustrup - From Computerworld.
USENET
- comp.lang.c++.moderated - Moderated C++ discussion group - Go to the Google groups version if your ISP does not offer USENET access or you are in any other way newsgroup challenged.
Frequently Asked Question lists (FAQ's)
- The "Super" FAQ - By Marshall Cline, Bjarne Stroustrup, Herb Sutter and Andrei Alexandresc.
- The "Lite" C++ FAQ - By Marshall Cline, the original FAQ from 1991.
- Available C++ Libraries FAQ - A huge list of C++ class libraries, for all platforms but a tad outdated.
- Alternative C++ FAQ - From Cprogramming.com.
Standards
Apart from the original AT&T documents there appear to be no sources of free C++ standards texts, not even pre-publication or beta editions.
- Initially all C++ compilers and/or pre-processors were based on the original Bjarne Stroustrup pamphlets published by AT&T as C++ Reference Manual, Data Abstraction in C and C++ Tutorial.
- ISO/IEC 14882:1998 - Aka C++98, the first formal standard, largely written by Stroustrup himself.
- ISO/IEC 14882:2003 - Aka C++03 - Also has a "C++ Technical Report 1" with clarifications and errata or ISO/IEC TR 19768:2007, that is sometimes referred to as C++07.
- ISO/IEC 14882:2011 - Aka C++11
- N3690 (working draft) - Aka C++14 - Had not been finalised in early 2015.
- According to the working group a new standard is scheduled to be introduced in 2017, so presumably C++17.