0% found this document useful (0 votes)
1K views

C++ Programming: From Problem Analysis To Program Design

C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 8: Namespaces, the class string, and User-Defined Simple Data Types Objectives In this chapter, you will: ‡ Learn how to create and manipulate your own simple data type called the enumeration type ‡ Become familiar with the typedef statement ‡ Learn about the namespace mechanism ‡ Explore the string data type and learn how to use the various string functions to manipulate strings C++ Programming: From Problem Analy
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views

C++ Programming: From Problem Analysis To Program Design

C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 8: Namespaces, the class string, and User-Defined Simple Data Types Objectives In this chapter, you will: ‡ Learn how to create and manipulate your own simple data type called the enumeration type ‡ Become familiar with the typedef statement ‡ Learn about the namespace mechanism ‡ Explore the string data type and learn how to use the various string functions to manipulate strings C++ Programming: From Problem Analy
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 46

C++ Programming: From Problem

Analysis to Program Design, Fifth Edition

Chapter 8: Namespaces, the class


string, and User-Defined
Simple Data Types
Objectives
In this chapter, you will:
• Learn how to create and manipulate your own
simple data type called the enumeration type
• Become familiar with the typedef statement
• Learn about the namespace mechanism
• Explore the string data type and learn how
to use the various string functions to
manipulate strings

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 2


Enumeration Type
• Data type: a set of values together with a
set of operations on those values
• To define a new simple data type, called
enumeration type, we need three things:
– A name for the data type
– A set of values for the data type
– A set of operations on the values

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 3


Enumeration Type (cont'd.)
• A new simple data type can be defined by
specifying its name and the values, but
not the operations
– The values must be identifiers
• Syntax:

– value1, value2, … are identifiers called


enumerators
– value1 < value2 < value3 <...
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 4
Enumeration Type (cont'd.)
• Enumeration type is an ordered set of
values
• If a value has been used in one
enumeration type it can’t be used by
another in same block
• The same rules apply to enumeration
types declared outside of any blocks

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 5


Enumeration Type (cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 6


Enumeration Type (cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 7


Declaring Variables
• Syntax:

• For example, given the following definition:

we can declare the following variables:

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 8


Assignment
• The statement:
popularSport = FOOTBALL;

stores FOOTBALL into popularSport


• The statement:
mySport = popularSport;

copies the value of the popularSport into


mySport
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 9
Operations on Enumeration
Types
• No arithmetic operations are allowed on
enumeration types

• ++ and -- are illegal too:

• Solution: use a static cast:

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 10


Relational Operators
• An enumeration type is an ordered set of
values:

• Enumeration type is an integer data type


and can be used in loops:

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 11


Input /Output of Enumeration
Types
• I/O are defined only for built-in data types
– Enumeration type cannot be input/output
(directly)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 12


Functions and Enumeration
Types
• Enumeration types can be passed as
parameters to functions either by value or
by reference
• A function can return a value of the
enumeration type

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 13


Declaring Variables When
Defining the Enumeration Type
• You can declare variables of an
enumeration type when you define an
enumeration type:

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 14


Anonymous Data Types
• Anonymous type : values are directly
specified in the declaration, with no type
name

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 15


Anonymous Data Types
(cont’d.)
• Drawbacks:
– Cannot pass/return an anonymous type
to/from a function
– Values used in one type can be used in
another, but are treated differently:

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 16


typedef Statement
• You can create synonyms or aliases to a
data type using the typedef statement
• Syntax:

• typedef does not create any new data


types
– Creates an alias to an existing data type
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 17
Namespaces
• ANSI/ISO standard C++ was officially
approved in July 1998
• Most of the recent compilers are also
compatible with ANSI/ISO standard C++
• For the most part, standard C++ and
ANSI/ISO standard C++ are the same
– However, ANSI/ISO Standard C++ has some
features not available in Standard C++

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 18


Namespaces (cont'd.)
• Global identifiers in a header file used in a
program become global in the program
– Syntax error occurs if an identifier in a program
has the same name as a global identifier in the
header file
• Same problem can occur with third-party
libraries
– Common solution: third-party vendors begin their
global identifiers with _ (underscore)
• Do not begin identifiers in your program with _

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 19


Namespaces (cont'd.)
• ANSI/ISO Standard C++ attempts to solve
this problem with the namespace
mechanism
• Syntax:

• Member is usually a variable declaration, a


named constant, a function, or another
namespace

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 20


Namespaces (cont'd.)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 21


Namespaces (cont'd.)
• The scope of a namespace member is
local to the namespace
• Ways a namespace member can be
accessed outside the namespace:

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 22


Namespaces (cont'd.)
• Examples:
globalType::RATE
globalType::printResult();
• After the using statement, it is not
necessary to precede the
namespace_name:: before the
namespace member
– Unless a namespace member and a global
identifier or a block identifier have same name

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 23


string Type
• To use the data type string, the program
must include the header file string
• The statement:
string name = "William Jacob";
declares name to be a string variable and
also initializes name to "William Jacob"
– The first character, 'W', is in position 0
– The second character, 'i', is in position 1
– name is capable of storing any size string

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 24


string Type (cont'd.)
• Binary operator + and the array subscript
operator [], have been defined for the data
type string
– + performs the string concatenation operation
• Example:
str1 = "Sunny";
str2 = str1 + " Day";

stores "Sunny Day" into str2

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 25


Additional string Operations

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 26


Example 8-14: clear, empty,
erase, length, AND size
FUNCTIONS

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 27


Example 8-15: find FUNCTION

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 28


Example 8-16: insert AND
replace FUNCTIONS

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 29


Example 8-17: substr
FUNCTION

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 30


Example 8-18: swap FUNCTION

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 31


Programming Example: Pig
Latin Strings
• Program prompts user to input a string
– Then outputs the string in the pig Latin form
• The rules for converting a string into pig
Latin form are as follows:
– If the string begins with a vowel, add the
string "-way" at the end of the string
• Example: the pig Latin form of "eye" is "eye-
way"

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 32


Programming Example: Pig
Latin Strings (cont'd.)
– If the string does not begin with a vowel, first
add "-" at the end of the string
• Then move the first character of the string to the
end of the string until the first character of the
string becomes a vowel
• Next, add the string "ay" at the end
• Example: pig Latin form of "There" is "ere-
Thay"

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 33


Programming Example: Pig
Latin Strings (cont'd.)
– Strings such as "by" contain no vowels
• The letter 'y' can be considered a vowel
• For this program the vowels are a, e, i, o, u, y,
A, E, I, O, U, and Y
– Strings such as "1234" contain no vowels
• The pig Latin form of a string that has no
vowels in it is the string followed by the string
"-way"
• Example: pig Latin form of "1234" is "1234-
way"

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 34


Programming Example:
Problem Analysis
• If str denotes a string:
– Check the first character, str[0], of str
– If it is a vowel, add "-way" at the end of
str
– If it is not a vowel:
• First add "-" at the end of the string
• Remove the first character of str from str and
put it at end of str
• Now the second character of str becomes the
first character of str

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 35


Programming Example:
Problem Analysis (cont'd.)
– This process is repeated until either
• The first character of str is a vowel
• All characters of str are processed, in which
case str does not contain any vowels

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 36


Programming Example:
Algorithm Design
• The program contains the following functions:
– isVowel determines if a character is a vowel
– rotate moves first character of str to the end of
str
– pigLatinString finds pig Latin form of str
• Steps in the algorithm:
– Get str
– Use pigLatinString to find the pig Latin form of
str
– Output the pig Latin form of str

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 37


Programming Example:
Function isVowel

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 38


Programming Example:
Function rotate
• Takes a string as a parameter
• Removes the first character of the string
– Places it at end of the string by extracting the
substring starting at position 1 until the end
of the string, then adding the first character
of the string

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 39


Programming Example:
Function pigLatinString
• If pStr[0] is a vowel, add "-way" at end
• If pStr[0] is not a vowel:
– Move first character of pStr to the end of pStr
– The second character of pStr becomes the first character
of pStr
• Now pStr may or may not contain a vowel
– Use a bool variable, foundVowel, which is set to true if
pStr contains a vowel and false otherwise
– Initialize foundVowel to false

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 40


Programming Example: Function
pigLatinString (cont'd.)
– If pStr[0] is not a vowel, move str[0] to
the end of pStr by calling the function
rotate
– Repeat third step until either the first
character of pStr becomes a vowel or all
characters of pStr have been checked
• Convert pStr into the pig Latin form
• Return pStr

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 41


Programming Example: Main
Algorithm
• Get the string
• Call pigLatinString to find the pig
Latin form of the string
• Output the pig Latin form of the string

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 42


Summary
• Enumeration type: set of ordered values
– Created with reserved word enum creates an
enumeration type
• No arithmetic operations are allowed on the
enumeration type
• Relational operators can be used with enum
values
• Enumeration type values cannot be input or
output directly

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 43


Summary (cont'd.)
• Anonymous type: a variable’s values are
specified without any type name
• Reserved word typedef creates synonyms or
aliases to previously defined data types
• The namespace mechanism is a feature of
ANSI/ISO Standard C++
• A namespace member is usually a named
constant, variable, function, or another
namespace

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 44


Summary (cont'd.)
• Keyword namespace must appear in the
using statement
• A string is a sequence of zero or more
characters
• Strings in C++ are enclosed in ""
• In C++, [] is the array subscript operator
• The function length returns the number
of characters currently in the string
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 45
Summary (cont'd.)
• The function size returns the number of
characters currently in the string
• The function find searches a string to locate
the first occurrence of a particular substring
• The function substr returns a particular
substring of a string
• The function swap is used to swap the
contents of two string variables

C++ Programming: From Problem Analysis to Program Design, Fifth Edition 46

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy