An Overview of Object-Oriented
Programming and C++
Object-Oriented Programming
Using C++
Second Edition
• In this chapter, you will learn:
• About the task of programming
• About programming universals
• About procedural programming
• About object-oriented programming
• About the C++ programming environment
• How to create a main() function
• In this chapter, you will learn:
• How to work with variables and the const qualifier
• How to create comments
• How to use libraries and preprocessor directives
• How to use cout and cin
• How to work with classes
The Task of Programming
• Programming a computer involves writing
instructions that enable a computer to carry out a
single task or a group of tasks
• A computer programming language requires
learning both vocabulary and syntax
• Programmers use many different programming
languages, including BASIC, Pascal, COBOL,
RPG, and C++
• The rules of any language make up its syntax
• Machine language is the language that computers
can understand; it consists of 1s and 0s
The Task of Programming
• A translator (called either a compiler or an
interpreter) checks your program for syntax
• A logical error occurs when you use a statement
that, although syntactically correct, doesn’t do
what you intended
• You run a program by issuing a command to
execute the program statements
• You test a program by using sample data to
determine whether the program results are
Programming Universals
• All programming languages provide methods for
directing output to a desired object, such as a
monitor screen, printer or file
• Similarly, all programming languages provide
methods for sending input into the computer
program so that it can be manipulated
• In addition, all programming languages provide
for naming locations in computer memory
• These locations commonly are called variables
(or attributes)
Programming Universals
• Ideally, variables have meaningful names,
although no programming language actually
requires that they meet this standard
• A variable may have only one value at a time, but
it is the ability of memory variables to change in
value that makes computers and programming
• In many computer programming languages,
including C++, variables must be explicitly
declared, or given a data type as well as a name,
before they can be used
Programming Universals
• The type determines what kind of values may be
stored in a variable
• Most computer languages allow at least two
types: one for numbers and one for characters
• Numeric variables hold values like 13 or -6
• Character variables hold values like ‘A’ or ‘&’
• Many languages include even more specialized
types, such as integer (for storing whole
numbers) or floating point (for storing numbers
with decimal places)
Procedural Programming
• Procedural programs consist of a series of steps
or procedures that take place one after the other
• The programmer determines the exact conditions
under which a procedure takes place, how often it
takes place, and when the program stops
• Programmers write procedural programs in many
programming languages, such as COBOL, BASIC,
• You can also write procedural programs in C++
Early Procedural Programs
• When programming languages were first used,
the programmer’s job was to break a task into
small, specific steps
• Each step was then coded in an appropriate
• Three basic control structures are used in
procedural programming
• In the first structure, a sequence, program steps
execute one after another, without interruption
Early Procedural Programs
• Procedural programs also can include a second
control structure called selection, which you use
to perform different tasks based on a condition
Early Procedural Programs
• The third control structure used in computer
programs is the loop
• some programmers call the loop structure a
repetition or iteration structure
Adding a Loop to a Simple
Procedural Billing Program
Modularity and Abstraction
• Programming in the oldest procedural languages
had two major disadvantages:
– The programming process involved so much detail that
the programmer (and any person reading the program)
lost sight of the big picture
– Similar statements required in various parts of the
program had to be rewritten in more than one place
• Writing programs became easier when
programming languages began to allow the
programmer to write methods
• Using methods allows programmers to group
statements together into modules or routines
Modularity and Abstraction
The Procedural Billing Program
Containing Several Module Calls
• Modules or procedures act somewhat like
relatively autonomous mini-programs
• Not only can modular routines contain their own
sets of instructions, but most programming
languages allow them to contain their own
variables as well
• The variables and instructions within a module
are hidden and contained —that is
encapsulated—which helps to make the module
independent of all other modules, and therefore
Object-Oriented Programming
• Object-oriented programming requires a different
way of thinking and adds several new concepts to
– You analyze the objects with which you are working—
both the attributes of those objects and the tasks that
need to be performed with and on those objects
– You pass messages to objects, requesting the objects to
take action
– The same message works differently when applied to
the various objects
Object-Oriented Programming
– A method can work appropriately with different types of
data it receives, without the need for separate method
– Objects can share or inherit traits of previously created
objects, thereby reducing the time it takes to create new
– Information hiding is more complete than in procedural
Object-Oriented Programming
• The basic principles behind using objectoriented programming techniques involve:
– Objects
– Classes
– Inheritance
– Polymorphism
Objects and Classes
• An object is any thing
• A class consists of a category of things
• An object is a specific item that belongs to a
class; it is called an instance of a class
• A class defines the characteristics of its objects
and the methods that can be applied to its objects
• It is conventional, but not required, to begin
object names with a lowercase letter, and to begin
class names with an uppercase letter
• The concept of using classes provides a
useful way to organize objects; it is especially
useful because classes are reusable or
• You can create new classes that extend or are
descendants of existing classes
• The descendent classes can inherit all the
attributes of the original (or parent) class, or
they can override inappropriate attributes
• Programming modules might occasionally need to
change the way they operate depending on the
• Object-oriented programs use polymorphism to carry
out the same operation in a manner customized to the
• Without polymorphism you would have to use a
separate module or method name for a method that
multiplies two numbers and one that multiplies three
• Without polymorphism you would have to create
separate module names for a method that cleans a
Dish object, one that cleans a Car object, and one that
cleans a Baby object
Getting Started in the C++
Programming Environment
• Depending on your C++ installation, you can
access the compiler by clicking an icon, selecting
from a menu, or typing a command
• The main work area in any C++ programming
environment is the editor
• An editor is a simplified version of a word
processor in which you type your program
statements, or source code
• After you enter the source code for a program,
you must compile the program
Getting Started in the C++
Programming Environment
• When you compile, the code you have written is
transformed into machine language—the
language that the computer can understand
• The output from the compilation is object code
• When a C++ program is compiled, a file is created
that has the same filename as the source code,
but has the extension .obj
• A runnable, or executable, program needs the
object code as well as code from any outside
sources (other files) to which it refers
Getting Started in the C++
Programming Environment
• The process of integrating these outside
references is called linking
• An executable file contains the same filename as
the source code and the object code, but carries
the extension .exe to distinguish it as a program
• When you compile a C++ program, error
messages and/or warnings might appear
• A C++ program with errors will not execute; you
must eliminate all error messages before you can
run the program
Creating a main( ) Function
• C++ programs consist of modules called
• Every statement within every C++ program is
contained in a function
• Every function consists of two parts:
– A function header is the initial line of code in a C++
which always has three parts:
• Return type of the function
• Name of the function
• Types and names of any variables enclosed in
parentheses, and which the function receives
– A function body
Creating a main( ) Function
• A C++ program may contain many functions, but
every C++ program contains at least one function,
and that function is called main( )
• If the main function does not pass values to other
programs or receives values from outside the
program, then main( ) receives and returns a void
• The body of every function in a C++ program is
contained in curly braces, also known as curly
Creating a main( ) Function
• Every complete C++ statement ends with a
• Often several statements must be grouped
together, as when several statements must occur
in a loop
• In such a case, the statements have their own set
of opening and closing braces within the main
braces, forming a block
Working with Variables
• In C++, you must name and give a type to
variables (sometimes called identifiers) before
you can use them
• Names of C++ variables can include letters,
numbers, and underscores, but must begin with a
letter or underscore
• No spaces or other special characters are
allowed within a C++ variable name
• Every programming language contains a few
vocabulary words, or keywords, that you need in
order to use the language
Common C++ Keywords
Working with Variables
• A C++ keyword cannot be used as a variable
• Each named variable must have a type
• C++ supports three simple types:
– Integer
— Floating point
— Character
• An integer is a whole number, either positive or
• An integer value may be stored in an integer
variable declared with the keyword int
• You can also declare an integer variable using
short int and long int
Working with Variables
• Real or floating-point numbers are numbers that
include decimal positions, such as 98.6,
1000.00002, and -3.85
• They may be stored in variables with type float,
double, and long double
• Characters may be stored in variables declared
with the keyword char
• A character may hold any single symbol in the
ASCII character set
• Often it contains a letter of the alphabet, but it
could include a space, digit, punctuation mark,
arithmetic symbol, or other special symbol
Working with Variables
• In C++, a character value is always expressed in
single quotes, such as ‘A’ or ‘&’
• To declare a variable, you list its type and its
• In addition, a variable declaration is a C++
statement, so it must end with a semicolon
• If you write a function that contains variables of
diverse types, each variable must be declared in
a statement of its own
• If you want to declare two or more variables of
the same type, you may declare them in the same
Working with Variables
• Explicitly stating the value of a variable is called
assignment, and is achieved with the assignment
operator =
• The variable finalScore is declared and assigned
a value at the same time
• Assigning a value to a variable upon creation is
often referred to as initializing the variable
The const Qualifier
• A variable that does not change in a program
should not be declared as a variable
• Instead, it should be a constant
• The statement const double MINIMUM_WAGE
= 5.75; declares a constant named
MINIMUM_WAGE that can be used like a
variable, but cannot be changed during a
Creating Comments
• Comments are statements that do not affect the
compiling or running of a program
• Comments are simply explanatory remarks that
the programmer includes in a program to clarify
what is taking place
• These remarks are useful to later program users
because they might help explain the intent of a
particular statement or the purpose of the entire
• C++ supports both line comments and block
Creating Comments
• A line comment begins with two slashes (//) and
continues to the end of the line on which it is placed
• A block comment begins with a single slash and an
asterisk (/*) and ends with an asterisk and a slash (*/);
it might be contained on a single line or continued
across many lines
Using Libraries and
Preprocessor Directives
• Header files are files that contain predefined
values and routines, such as squrt( )
• Their filenames usually end in .h
• In order for your C++ program to use these
predefined routines, you must include a
preprocessor directive, a statement that tells the
compiler what to do before compiling the
• In C++, all preprocessor directives begin with a
pound sign (#), which is also called an octothorp
• The #include preprocessor directive tells the
compiler to include a file as part of the finished
C++ Output
• C++ provides several objects for producing output
• The simplest object is called cout, pronounced “see
• When contained in a complete C++ program, the
statement cout<<“Hi there”; places the phrase “Hi
there” on the monitor
C++ Output
• To indicate a newline character, you can use the
escape sequence \n
• Another way to advance output to a new line is to
use the end line manipulator endl
• Inserting endl into the output stream causes a
new line plus all waiting output to become visible,
a process called flushing the buffer
• To create a program that declares two variables,
assigns values to them, and creates output,
perform the steps on pages 21 to 23 of the
Program Listing for Output1.cpp
Output of Output1.cpp
C++ Input
• Many programs rely on input from a user
• These are called interactive programs because
the user interacts with the program statements
• You create prompts by using the cout object; you
retrieve user responses by using the cin object
• The cin (pronounced see in) object fetches values
from the keyboard
• It is used with the extraction operator >>
• Prior to a cin statement, it is almost always
necessary to provide the user with a prompt, or a
short explanation of what is expected
C++ Input
• Whitespace consists of any number of spaces,
tabs, and Enter characters
• You will add prompts and interactive input to the
Output1.cpp program by following the
instructions shown on pages 24 and 25 of the
Output of Output2.cpp
C++ Classes and Objects
• When you use data types like int, char, and
double within a program, you are using the C++
built-in, primitive or scalar data types
• A major feature of object-oriented languages is
the ability to create your own new, complex data
• These new types are called classes
• A class can contain many simpler data types
within it, as well as any number of functions
• The relationship between these components, or
fields, is often called a has-a relationship
C++ Classes and Objects
A Complete Class Definition
and a main( ) Method that
Uses a Class Object
C++ Classes and Objects
• You will create a Student class, and then create a
program that uses a Student class object using the
procedures outlined on pages 27 and 28 of the
• Creating a class provides a means to group data
fields together in a logical way
• Programming a computer involves learning the
syntax of a computer programming language and
resolving logical errors
• All programming languages provide methods for
input and output of variable values
• You declare a variable by providing it with a name
and a type
• Procedural programs consist of a series of steps
or procedures that take place one after the other
• Object-oriented programming adds several new
programming concepts including objects,
classes, inheritance, and polymorphism
• You write a C++ program by typing source code
into an editor and compiling the program
• C++ modules are called functions, and each
function contains a header and a body
• C++ variables must be given a type and a name
• Simple types include integer for whole numbers,
double and float for floating-point values, and
character for any character
• Comments are non-executing program
• C++ supports line comments and block
• A preprocessor directive tells the compiler to do
something, such as to include a header file,
before compiling the program
• The cout statement (along with an insertion
operator) is used to display values
• When you create a class, you create your own
C++ data type, which is a complex type
composed of simpler types

No Slide Title