Copyright©2004 by Daniel B. Sedory
A C++ version of Simply: SimplyP.zip (with the "C++" source code and my MAKEsimplyCPP.cmd Batch file). For this example, we removed the debugging switches and suppressed the creation of the .map file! And since they weren't needed, the Cmd program deletes the .obj and .tds files as well. For a program this small, one might think there wouldn't be many differences between the C and C++ source files; you might be surprised though if you've only seen C-code before!
A comment normally begins with "//"; no terminator required, but you
can still use the "/*" and "*/" pairs from
C for extended (multi-line) comments as you'll find in this file. Rather
than the standard C
function in <stdio.h>, we've used the C++ "
from <iostream> instead, and in a way that will probably make C-coders
blink and stare! Read the Cplusplus
Tutorial Section 5-2 on "Namespace std" to see how
it's used in this file.
However, C++ compilers are generally backwards compatible and will still work with the functions from "C" source code. You should make it a practice though, to reserve the ".cpp" extension for source code that actually contains C++ functions and use ".c" for those files which do not; a C++ compiler should at the very least give you a "warning" if you have C++ code in a .c file, and it may even abort with an error message!
Notice how much larger this C++ executable is than the "Simply C" program you made before. The size we have for simply.exe is only 53,760 bytes, whereas simplycpp.exe is 116,736 bytes! This is mainly due to the fact that there is just a lot more pre-compiled code involved with a C++ program. If you compare the contents of the header file that we called in the "#include <iostream>" line vs. <stdio.h> in simply.c, you might really wonder why. But that iostream header file is connected to a lot of other files in the Include folder too! Before proceeding with this, do the following:
Open up both programs in Notepad. [Yes, I know they're binary files, but Notepad can be very useful as a quick tool for examining any unknown Windows programs (such as worms in your E-mail's Inbox!) because you can still read quite a bit of text inside them. Notepad is not, however, very useful as a Hex (binary file) editor! Under the 'Format' menu, you can turn on "Word Wrap" which often makes it easier to view the contents of a binary file; don't forget to uncheck it later.]
Apart from the
fact that the C++ program is simply larger, you'll find a whole lot of extra
text phrases in it that begin with "
and other such characters. This is the main reason that a few programmers enjoy
working with Assembly
language rather than C++ or even C: Because the executables they
produce are often dramatically smaller. Now if you search for the phrase "basic_string::"
in the Include folder, you'll only find it in the files
string.stl even though we never included them in our
source code! You now know for sure that there's a lot more code connected to
any program you write than just your own source files. There are a lot of files
in that Include folder that you'll never use!
As a matter of fact, when it comes to writing Windows code, it can be very helpful to examine the header files connected to API (Application Programming Interface) code (including the comments), and 707 of the 1,017 .h files in my Borland Include folder have a Microsoft® copyright in them! When you build a program using any API functions (such as the GUI program in the next lesson), you should take a look at the file winbase.h which is one of the most important of these to examine; it's also called from windows.h along with such files as wingdi.h and winuser.h.
Back to The Starman's Realm Index page!