Chapter. Sams Publishing Object-Oriented Programming in C++
விளம்பரம்
விளம்பரம்
24 3087 App G 11/29/01 2:22 PM Page 973
Answers to Questions and Exercises
973 private: string lastName; string firstName; long phoneNumber; public: person() : // default constructor lastName(“blank”), firstName(“blank”), phoneNumber(0L)
{ }
// 3-arg constructor person(string lana, string fina, long pho) : lastName(lana), firstName(fina), phoneNumber(pho)
{ } friend bool operator<(const person&, const person&); void display() const // display person’s data
{ cout << endl << lastName << “,\t” << firstName
<< “\t\tPhone: “ << phoneNumber;
} long get_phone() const // return phone number
{ return phoneNumber; }
}; //end class person
//--------------------------------------------------------------
// overloaded < for person class bool operator<(const person& p1, const person& p2)
{ if(p1.lastName == p2.lastName) return (p1.firstName < p2.firstName) ? true : false; return (p1.lastName < p2.lastName) ? true : false;
}
//--------------------------------------------------------------
// function object to compare persons using pointers class comparePersons
{ public: bool operator() (const person* ptrP1, const person* ptrP2) const
{ return *ptrP1 < *ptrP2; }
};
//////////////////////////////////////////////////////////////// int main()
{ // a multiset of ptrs to persons multiset<person*, comparePersons> setPtrsPers; multiset<person*, comparePersons>::iterator iter;
G
24 3087 App G 11/29/01 2:22 PM Page 974
974
Appendix G
//make persons person* ptrP1 = new person(“KuangThu”, “Bruce”, 4157300); person* ptrP2 = new person(“McDonald”, “Stacey”, 3327563); person* ptrP3 = new person(“Deauville”, “William”, 8435150); person* ptrP4 = new person(“Wellington”, “John”, 9207404); person* ptrP5 = new person(“Bartoski”, “Peter”, 6946473); person* ptrP6 = new person(“McDonald”, “Amanda”, 8435150); person* ptrP7 = new person(“Fredericks”, “Roger”, 7049982); person* ptrP8 = new person(“McDonald”, “Stacey”, 7764987); setPtrsPers.insert(ptrP1); //put persons in multiset setPtrsPers.insert(ptrP2); setPtrsPers.insert(ptrP3); setPtrsPers.insert(ptrP4); setPtrsPers.insert(ptrP5); setPtrsPers.insert(ptrP6); setPtrsPers.insert(ptrP7); setPtrsPers.insert(ptrP8);
//display multiset cout << “\n\nSet sorted when created:”; for(iter=setPtrsPers.begin(); iter != setPtrsPers.end(); iter++ )
(**iter).display(); iter = setPtrsPers.begin(); //delete all persons while( iter != setPtrsPers.end() )
{ delete *iter; //delete person setPtrsPers.erase(iter++); //remove pointer
} cout << endl; return 0;
} // end main()
Chapter 16
Answers to Questions
1. false
2. c, d
3. task
4. true
5. columns
6. a, c
24 3087 App G 11/29/01 2:22 PM Page 975
Answers to Questions and Exercises
975
7. generalization, association, aggregation
8. a, d
9. false
10. a
11. true
12. false
13. a, b, c, d
14. people (or human beings), other systems, program (or system)
15. b
16. b, c
17. false
18. a, d
19. b, d
20. false
21. c, d
22. object
23. true
24. a, d
G
24 3087 App G 11/29/01 2:22 PM Page 976
பதிவிறக்கு
விளம்பரம்