Tools.h++ Manual
22-22 104011 Tandem Computers Incorporated
22
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, const Dog& dog){
str << dog.name;
return str;}
};
main()
{
RWTPtrDlist<dog> terriers;
terriers.insert(new Dog("Cairn Terrier"));
terriers.insert(new Dog("Irish Terrier"));
terriers.insert(new Dog("Schnauzer"));
Dog key1("Schnauzer");
cout << "The list " <<
(terriers.contains(&key1) ? "does " : "does not ") <<
"contain a Schnauzer\n";
Dog key2("Irish Terrier");
terriers.insertAt(
terriers.index(&key2),
new Dog("Fox Terrier")
);
Dog* d;
while (!terriers.isEmpty()) {
d = terriers.get();
cout << *d << endl;
delete d;
}
return 0;
}
Code Example 22-1 (2 of 2)