C++ A Beginner's Guide 2nd Edition (2003).pdf

(11601 KB) Pobierz
C++: A Beginner's Guide, Second Edition
716755830.001.png
Module 1
C++ Fundamentals
Table of Contents
CRITICAL SKILL 1.1: A Brief History of C++ .................................................................................................... 2
CRITICAL SKILL 1.2: How C++ Relates to Java and C#.................................................................................... 5
CRITICAL SKILL 1.3: Object-Oriented Programming...................................................................................... 7
CRITICAL SKILL 1.4: A First Simple Program ................................................................................................ 10
CRITICAL SKILL 1.5: A Second Simple Program ........................................................................................... 15
CRITICAL SKILL 1.6: Using an Operator ....................................................................................................... 17
CRITICAL SKILL 1.7: Reading Input from the Keyboard ............................................................................... 19
Project 1-1 Converting Feet to Meters ....................................................................................................... 24
CRITICAL SKILL 1.8: Two Control Statements.............................................................................................. 26
CRITICAL SKILL 1.9: Using Blocks of Code ................................................................................................... 30
Project 1-2 Generating a Table of Feet to Meter Conversions ................................................................... 33
CRITICAL SKILL 1.10: Introducing Functions................................................................................................ 35
CRITICAL SKILL 1.11: The C++ Keywords ..................................................................................................... 38
CRITICAL SKILL 1.12: Identifiers................................................................................................................... 39
If there is one language that defines the essence of programming today, it is C++. It is the preeminent
language for the development of high-performance software. Its syntax has become the standard for
professional programming languages, and its design philosophy reverberates throughout computing.
1
C++ A Beginner’s Guide by Herbert Schildt
716755830.002.png 716755830.003.png
C++ is also the language from which both Java and C# are derived. Simply stated, to be a professional
programmer implies competency in C++. It is the gateway to all of modern programming.
The purpose of this module is to introduce C++, including its history, its design philosophy, and several
of its most important features. By far, the hardest thing about learning a programming language is the
fact that no element exists in isolation. Instead, the components of the language work together. This
interrelatedness makes it difficult to discuss one aspect of C++ without involving others. To help
overcome this problem, this module provides a brief overview of several C++ features, including the
general form of a C++ program, some basic control statements, and operators. It does not go into too
many details, but rather concentrates on the general concepts common to any C++ program.
CRITICAL SKILL 1.1: A Brief History of C++
The history of C++ begins with C. The reason for this is easy to understand: C++ is built upon the
foundation of C. Thus, C++ is a superset of C. C++ expanded and enhanced the C language to support
object-oriented programming (which is described later in this module). C++ also added several other
improvements to the C language, including an extended set of library routines. However, much of the
spirit and flavor of C++ is directly inherited from C. Therefore, to fully understand and appreciate C++,
you need to understand the “how and why” behind C.
C: The Beginning of the Modern Age of Programming
The invention of C defines the beginning of the modern age of programming. Its impact should not be
underestimated because it fundamentally changed the way programming was approached and thought
about. Its design philosophy and syntax have influenced every major language since. C was one of the
major, revolutionary forces in computing.
C was invented and first implemented by Dennis Ritchie on a DEC PDP-11 using the UNIX operating
system. C is the result of a development process that started with an older language called BCPL. BCPL
was developed by Martin Richards. BCPL influenced a language called B, which was invented by Ken
Thompson and which led to the development of C in the 1970s.
Prior to the invention of C, computer languages were generally designed either as academic exercises or
by bureaucratic committees. C was different. It was designed, implemented, and developed by real,
working programmers, reflecting the way they approached the job of programming. Its features were
honed, tested, thought about, and rethought by the people who actually used the language. As a result,
C attracted many proponents and quickly became the language of choice of programmers around the
world.
C grew out of the structured programming revolution of the 1960s. Prior to structured programming,
large programs were difficult to write because the program logic tended to degenerate into what is
known as “spaghetti code,” a tangled mass of jumps, calls, and returns that is difficult to follow.
Structured languages addressed this problem by adding well-defined control statements, subroutines
2
C++ A Beginner’s Guide by Herbert Schildt
716755830.004.png
with local variables, and other improvements. Using structured languages, it became possible to write
moderately large programs.
Although there were other structured languages at the time, such as Pascal, C was the first to
successfully combine power, elegance, and expressiveness. Its terse, yet easy-to-use syntax coupled
with its philosophy that the programmer (not the language) was in charge quickly won many converts. It
can be a bit hard to understand from today’s perspective, but C was a breath of fresh air that
programmers had long awaited. As a result, C became the most widely used structured programming
language of the 1980s.
The Need for C++
Given the preceding discussion, you might be wondering why C++ was invented. Since C was a successful
computer programming language, why was there a need for something else? The answer is complexity.
Throughout the history of programming, the increasing complexity of programs has driven the need for
better ways to manage that complexity. C++ is a response to that need. To better understand the
correlation between increasing program complexity and computer language development, consider the
following.
Approaches to programming have changed dramatically since the invention of the computer. For
example, when computers were first invented, programming was done by using the computer’s front
panel to toggle in the binary machine instructions. As long as programs were just a few hundred
instructions long, this approach worked. As programs grew, assembly language was invented so that
programmers could deal with larger, increasingly complex programs by using symbolic representations
of the machine instructions. As programs continued to grow, high-level languages were developed to
give programmers more tools with which to handle the complexity.
The first widely used computer language was, of course, FORTRAN. While FORTRAN was a very
impressive first step, it is hardly a language that encourages clear, easy-to-understand programs. The
1960s gave birth to structured programming, which is the method of programming encouraged by
languages such as C. With structured languages it was, for the first time, possible to write moderately
complex programs fairly easily. However, even with structured programming methods, once a project
reaches a certain size, its complexity exceeds what a programmer can manage. By the late 1970s, many
projects were near or at this point.
In response to this problem, a new way to program began to emerge: object-oriented programming
(OOP). Using OOP, a programmer could handle larger, more complex programs. The trouble was that C
did not support object-oriented programming. The desire for an object-oriented version of C ultimately
led to the creation of C++.
In the final analysis, although C is one of the most liked and widely used professional programming
languages in the world, there comes a time when its ability to handle complexity is exceeded. Once a
program reaches a certain size, it becomes so complex that it is difficult to grasp as a totality. The
3
C++ A Beginner’s Guide by Herbert Schildt
 
purpose of C++ is to allow this barrier to be broken and to help the programmer comprehend and
manage larger, more complex programs.
C++ Is Born
C++ was invented by Bjarne Stroustrup in 1979, at Bell Laboratories in Murray Hill, New Jersey. He
initially called the new language “C with Classes.” However, in 1983 the name was changed to C++.
Stroustrup built C++ on the foundation of C, including all of C’s features, attributes, and benefits. He also
adhered to C’s underlying philosophy that the programmer, not the language, is in charge. At this point,
it is critical to understand that Stroustrup did not create an entirely new programming language.
Instead, he enhanced an already highly successful language.
Most of the features that Stroustrup added to C were designed to support object-oriented
programming. In essence, C++ is the object-oriented version of C. By building upon the foundation of C,
Stroustrup provided a smooth migration path to OOP. Instead of having to learn an entirely new
language, a C programmer needed to learn only a few new features before reaping the benefits of the
object-oriented methodology.
When creating C++, Stroustrup knew that it was important to maintain the original spirit of C, including
its efficiency, flexibility, and philosophy, while at the same time adding support for object-oriented
programming. Happily, his goal was accomplished. C++ still provides the programmer with the freedom
and control of C, coupled with the power of objects.
Although C++ was initially designed to aid in the management of very large programs, it is in no way
limited to this use. In fact, the object-oriented attributes of C++ can be effectively applied to virtually
any programming task. It is not uncommon to see C++ used for projects such as editors, databases,
personal file systems, networking utilities, and communication programs. Because C++ shares C’s
efficiency, much high-performance systems software is constructed using C++. Also, C++ is frequently
the language of choice for Windows programming.
The Evolution of C++
Since C++ was first invented, it has undergone three major revisions, with each revision adding to and
altering the language. The first revision was in 1985 and the second in 1990. The third occurred during
the C++ standardization process. Several years ago, work began on a standard for C++. Toward that end,
a joint ANSI (American National Standards Institute) and ISO (International Standards Organization)
standardization committee was formed. The first draft of the proposed standard was created on January
25, 1994. In that draft, the ANSI/ISO C++ committee (of which I was a member) kept the features first
defined by Stroustrup and added some new ones. But, in general, this initial draft reflected the state of
C++ at the time.
Soon after the completion of the first draft of the C++ standard, an event occurred that caused the
standard to be greatly expanded: the creation of the Standard Template Library (STL) by Alexander
Stepanov. The STL is a set of generic routines that you can use to manipulate data. It is both powerful
4
C++ A Beginner’s Guide by Herbert Schildt
 
Zgłoś jeśli naruszono regulamin