Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 1 Chapter 9 Classes & Objects type string is.

Similar presentations


Presentation on theme: "1 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 1 Chapter 9 Classes & Objects type string is."— Presentation transcript:

1 1 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 1 Chapter 9 Classes & Objects type string is a natural lead-in to OOP, since strings act like character arrays and are, in fact, objects (a class type)‏

2 2 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X Objects in Brief Object ::= a domain entity (p. 274)‏ student button circle Coke machine string defined by name, state, & behavior 2

3 3 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X Objects in Brief name ::= the usual rules for identifiers state ::= data members (state variables)‏ behavior ::= function members (methods)‏ alternately-- object ::= named set of properties/members data members member functions 3

4 4 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X Objects in Brief name ::= the usual rules for identifiers state ::= data members (state variables)‏ behavior ::= function members (methods)‏ alternately-- object ::= named set of properties/members data members member functions 4

5 5 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X Objects in Brief Example: Circle Object Example: Circle Object Example: Circle Object State Variable: radius Methods: setRadius(), getArea(), getDiameter()‏ int main(){ Circle c; c.setRadius(5); cout << c.getArea()‏ << c.getDiameter(); 5

6 6 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X Implementation in C++ Objects are defined using a class The class is a blueprint for creating objects objects are created by making an instance of the class Circle is a class type c is an instance of the class metaphor: classes are to objects as apple pie recipes are to apple pies 6

7 7 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 7 Case Study: The Standard Class string (  9.8)‏ 9.8)‏ 9.8)‏ > 100 member functions (p. 284)‏

8 8 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X The Standard Class string cstring ::= NUL-terminated char array →  low-level;  error-prone; not a type type string avoids problems associated with cstrings provides additional operations (!)‏ 8

9 9 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 9 String Ops copy (=)‏ append (+)‏ compare (<, <=, ==,...)‏ #include int main(){ string s1, s2(“hot”), s3(“dog”), s4; s1 = s2 + ‘ ‘ + s3 + “!”; s4 = s1; cout << s1 << s4 << endl; }

10 10 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 10 Appending a String You can use several overloaded functions to add new contents to a string. For example, see the following code: string s1("Welcome"); s1.append(" to C++"); // appends " to C++" to s1 cout << s1 << endl; // s1 now becomes Welcome to C++ string s2("Welcome"); s2.append(" to C and C++", 0, 5); // appends " to C" to s2 cout << s2 << endl; // s2 now becomes Welcome to C string s3("Welcome"); s3.append(" to C and C++", 5); // appends " to C" to s3 cout << s3 << endl; // s3 now becomes Welcome to C string s4("Welcome"); s4.append(4, 'G'); // appends "GGGG" to s4 cout << s4 << endl; // s4 now becomes WelcomeGGGG

11 11 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 11 Assigning a String You can use several overloaded functions to assign new contents to a string. For example, see the following code: string s1("Welcome"); s1.assign("Dallas"); // assigns "Dallas" to s1 cout << s1 << endl; // s1 now becomes Dallas string s2("Welcome"); s2.assign("Dallas, Texas", 0, 5); // assigns "Dalla" to s2 cout << s2 << endl; // s2 now becomes Dalla string s3("Welcome"); s3.assign("Dallas, Texas", 5); // assigns "Dalla" to s3 cout << s3 << endl; // s3 now becomes Dalla string s4("Welcome"); s4.assign(4, 'G'); // assigns "GGGG" to s4 cout << s4 << endl; // s4 now becomes GGGG

12 12 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 12 Functions at, clear, erase, and empty You can use the at(index) function to retrieve a character at a specified index, clear() to clear the string, erase(index, n) to delete part of the string, and empty() to test if a string is empty. For example, see the following code: string s1("Welcome"); cout << s1.at(3) << endl; // s1.at(3) returns c cout << s1.erase(2, 3) << endl; // s1 is now Weme s1.clear(); // s1 is now empty cout << s1.empty() << endl; // s1.empty returns 1 (means true)‏

13 13 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 13 Comparing Strings Often, in a program, you need to compare the contents of two strings. You can use the compare function. This function works in the same way as the C-string strcmp function and returns a value greater than 0, 0, or less than 0. For example, see the following code: string s1("Welcome"); string s2("Welcomg"); cout << s1.compare(s2) << endl; // returns -2 cout << s2.compare(s1) << endl; // returns 2 cout << s1.compare("Welcome") << endl; // returns 0

14 14 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 14 String Operators


Download ppt "1 Liang, Introduction to C++ Programming, (c) 2007 Pearson Education, Inc. All rights reserved. 013225445X 1 Chapter 9 Classes & Objects type string is."

Similar presentations


Ads by Google