Tools.h++ Manual

22-76 104011 Tandem Computers Incorporated
22
Dog(const Dog& dog) {
name = new char[strlen(dog.name)+1];
strcpy(name, dog.name); }
// Define an assignment operator:
void operator=(const Dog& dog) {
if (this!=&dog) {
delete name;
name = new char[strlen(dog.name)+1];
strcpy(name, dog.name);
}
}
// Define an equality test operator:
int operator==(const Dog& dog) const {
return strcmp(name, dog.name)==0; }
friend ostream& operator<<(ostream& str, Dog& dog){
str << dog.name;
return str;}
};
main()
{
RWTValDlist<dog> terriers;
terriers.insert("Cairn Terrier"); // NB: type conversion
occurs
terriers.insert("Irish Terrier");
terriers.insert("Schnauzer");
cout << "The list " <<
(terriers.contains("Schnauzer") ? "does " : "does not ") <<
"contain a Schnauzer\n";
terriers.insertAt(
terriers.index("Irish Terrier"),
"Fox Terrier"
);
while (!terriers.isEmpty())
cout << terriers.get() << endl;
return 0;
}
Code Example 22-6 (2 of 2)