Chapter 2: Introduction to C++
Starting Out with C++
Early Objects
Sixth Edition
by Tony Gaddis, Judy Walters,
and Godfrey Muganda
(some revisions by W. Barrett)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Topics
2.1 Parts of a C++ Program
2.2 The cout Object
2.3 The #include Directive
2.4 Standard and Prestandard C++
2.5 Variables, Constants, and the Assignment
Statement
2.6 Identifiers
2.7 Integer Data Types
2.8 The char Data Type
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-2
Topics (continued)
2.9 The C++ string Class
2.10 Floating-Point Data Types
2.11 The bool Data Type
2.12 Determining the Size of a Data Type
2.13 More on Variable Assignments and
Initialization
2.14 Scope
2.15 Arithmetic Operators
2.16 Comments
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-3
2.1 Parts of a C++ Program
// sample C++ program comment
preprocessor directive
#include <iostream>
using namespace std; which namespace to use
beginning of function named main
int main()
beginning of block for main
{
cout << "Hello, there!"; output statement
return 0; send 0 back to operating system
} end of block for main
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-4
Special Characters
Character Name Description
// Double Slash Begins a comment
# Pound Sign Begins preprocessor directive
< > Open, Close Brackets Encloses filename used in
#include directive
( ) Open, Close Parentheses Used when naming function
{ } Open, Close Braces Encloses a group of statements
" " Open, Close Quote Marks Encloses string of characters
; Semicolon Ends a programming statement
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-5
2.2 The cout Object
• Displays information on computer screen
• Use << to send information to cout
cout << "Hello, there!";
• Can use << to send multiple items to cout
cout << "Hello, " << "there!";
Or
cout << "Hello, ";
cout << "there!";
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-6
Starting a New Line
• To get multiple lines of output on screen
- Use endl outside a string with cout
cout << "Hello, there!" << endl;
- Use \n inside a string
cout << "Hello, there!\n";
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-7
Quote chars and backslash in a string
• Double quote in a string: " \" "
• Single quote in a string: " \' "
– Or just " ' "
• Backslash in a string: " \\ "
• \ is considered an escape character
– Changes the meaning of the character
following it
– The pair \" is an escape sequence
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-8
2.3 The #include Directive
• Inserts the contents of another file into the
program
• Is a preprocessor directive
– Not part of the C++ language
– Not seen by compiler No ;
goes here
• Example:
#include <iostream>
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-9
2.4 Standard and Prestandard C++
Older-style C++ programs
• Use .h at end of header files
#include <iostream.h>
• Do not use using namespace convention
• May not compile with a standard C++ compiler
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-10
2.5 Variables, Constants, and the
Assignment Statement
• Variable
– Has a name and a type of data it can hold
variable
data type name
char letter;
– Is used to reference a location in memory where a
value can be stored
– Variable must be defined before it can be used
– This value can be changed (i.e., can “vary”)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-11
Variables
– If a new value is stored in the variable, it
replaces the previous value
– The previous value is overwritten and can no
longer be retrieved
int age;
age = 17; // age is 17
cout << age; // Displays 17
age = 18; // Now age is 18
cout << age; // Displays 18
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-12
Assignment Statement
• Uses the = operator
• Has a single variable on the left side and a
value on the right side
• Copies the value on the right into the
variable on the left
item = 12;
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-13
Constants
• Constant
– Data item whose value does not change
during program execution
– Is also called a literal
'A' // character constant
"Hello" // string literal
12 // integer constant
3.14 // floating-point constant
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-14
2.6 Identifiers
• Programmer-chosen names to represent parts of the
program
– variables, functions, etc.
• Name should represent the use of the identifier
• Cannot use C++ key words as identifiers
• Must begin with alpha character or _, followed by
alpha, numeric, or _ . Alpha may be upper- or
lowercase
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-15
Valid and Invalid Identifiers
IDENTIFIER VALID? REASON IF INVALID
totalSales Yes
total_Sales Yes
total.Sales No Cannot contain period
4thQtrSales No Cannot begin with digit
totalSale$ No Cannot contain $
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-16
2.7 Integer Data Types
• Designed to hold whole numbers
• Can be signed or unsigned
12 -6 +3
• Available in different sizes (i.e., number of
bytes): char, short, int, and long
• Size of char < size of short size of
int size of long
– (8<16<32<32 bits)
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-17
Number data types
Type Bytes range
char 1 -128..127
short 2 -32768..32767
int 4 -2,147,384,648
..2,147,384,647
long 4-6 often same as int
float 4 +/- 3.4E-38 to
+/- 3.4E+38
double 8 +/-1.7E-308 to
+/-1.7E+308
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-18
Defining Variables
• Variables of the same type can be defined
- In separate statements
int length;
int width;
- In the same statement
int length,
width;
• Variables of different types must be defined
in different statements
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-19
Integer Constants
• To store an integer constant in a long
memory location, put ‘L’ at the end of the
number: 1234L
• Constants that begin with ‘0’ (zero) are
base 8: 075
• Constants that begin with ‘0x’ are base 16:
0x75A
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-20
2.8 The char Data Type
• Used to hold single characters or very small
integer values
• Usually occupies 1 byte of memory
• ASCII character: code drawn from table
SOURCE CODE char value
char letter = 'C'; letter 67
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-21
String Constant
• Can be stored a series of characters in consecutive
memory locations
"Hello"
• Stored with the null terminator, \0, at end
H e l l o \0
0 1 2 3 4 5
Is comprised of characters between the " "
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-22
2.9 The C++ string Class
• Must #include <string> to create and
use string objects
• Can define string variables in programs
string name;
• Can assign values to string variables with the
assignment operator
name = "George";
• Can display them with cout
cout << name;
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-23
Single vs. Double quotes
• SINGLE quotes: for a SINGLE character
char ch= 'A';
char lf= '\n';
char bslash= '\\';
• DOUBLE quotes: for a string of chars
string s= "\"my name\"\n";
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-24
2.10 Floating-Point Data Types
• Designed to hold real numbers
12.45 -3.8
• Stored in a form similar to scientific notation
• Numbers are all signed
• Available in different sizes (number of
bytes): float, double, and long double
• Size of float size of double
size of long double
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-25
Floating-point Constants
• Can be represented in
- Fixed point (decimal) notation:
31.4159 0.0000625
- E notation:
3.14159E1 6.25e-5
• Are double by default
• Can be forced to be float 3.14159F or
long double 0.0000625L
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-26
Assigning Floating-point Values to
Integer Variables
If a floating-point value is assigned to an
integer variable
– The fractional part will be truncated (i.e.,
“chopped off” and discarded)
– The value is not rounded
int rainfall = 3.88;
cout << rainfall; // Displays 3
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-27
2.11 The bool Data Type
• Represents values that are true or false
• bool variables are stored as short integers
• false is represented by 0, true by 1
bool allDone = true; allDone finished
bool finished = false; 1 0
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-28
2.12 Determining the Size of a Data Type
The sizeof operator gives the size of any
data type or variable
double amount;
cout << "A float is stored in "
<< sizeof(float) << "bytes\n";
cout << "Variable amount is stored in "
<< sizeof(amount) << "bytes\n";
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-29
2.13 More on Variable Assignments and
Initialization
• Assigning a value to a variable
– Assigns a value to a previously created variable
– A single variable name must appear on left side
of the = symbol
int size;
size = 5; // legal
5 = size; // not legal
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-30
Variable Assignment vs. Initialization
• Initializing a variable
– Gives an initial value to a variable at the time
it is created
– Can initialize some or all variables of
definition
int length = 12;
int width = 7, height = 5, area;
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-31
2.14 Definition and Scope of Variables
• A variable must be defined before any use
int a; // a is now defined
cin >> a; // legal use
cin >> b; // illegal use
int b; // defined after first
use
• The scope of a variable is
– That part of the program where the variable can be
used
– STARTS with its definition
– ENDS at the next } enclosing the definition
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-32
2.15 Arithmetic Operators
• Used for performing numeric calculations
• C++ has unary, binary, and ternary
operators
– unary (1 operand) -5
– binary (2 operands) 13 - 7
– ternary (3 operands) exp1 ? exp2 : exp3
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-33
Binary Arithmetic Operators
SYMBOL OPERATION EXAMPLE ans
+ addition ans = 7 + 3; 10
- subtraction ans = 7 - 3; 4
* multiplication ans = 7 * 3; 21
/ division ans = 7 / 3; 2
% modulus ans = 7 % 3; 1
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-34
Division operator /
• C++ division operator (/)performs integer
division if both operands are integers
cout << 13 / 5; // displays 2
cout << 2 / 4; // displays 0
• If either operand is floating-point, performs
floating division (with fractions as needed)
cout << 13 / 5.0; // displays 2.6
cout << 2.0 / 4; // displays 0.5
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-35
% Operator
• C++ modulus operator (%) computes the
remainder resulting from integer division
cout << 9 % 2; // displays 1
• % requires integers for both operands
cout << 9 % 2.0; // error
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-36
2.16 Comments
• Are used to document parts of a program
• Are written for persons reading the source
code of the program
– Indicate the purpose of the program
– Describe the use of variables
– Explain complex sections of code
• Are ignored by the compiler
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-37
Single-Line Comments
• Begin with // through to the end of line
int length = 12; // length in inches
int width = 15; // width in inches
int area; // calculated area
// Calculate rectangle area
area = length * width;
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-38
Multi-Line Comments
• Begin with /* and end with */
• Can span multiple lines
/*----------------------------
Here's a multi-line comment
----------------------------*/
• Can also be used as single-line
comments
int area; /* Calculated area */
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-39
Chapter 2: Introduction to C++
Starting Out with C++
Early Objects
Sixth Edition
by Tony Gaddis, Judy Walters,
and Godfrey Muganda
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley