int main() { Dog vdog; Pet vpet; vdog.name = "Tiny"; vdog.breed = "Great Dane"; vpet = vdog; //vpet.breed; is illegal since class Pet has no member named breed Dog *pdog; pdog = new Dog; pdog->name = "Tiny"; pdog->breed = "Great Dane"; Pet *ppet; ppet = pdog; ppet->print(); // These two print the same output: pdog->print(); // name: Tiny breed: Great Dane //The following, which accesses member variables directly //rather than via virtual functions, would produce an error: //cout << "name: " << ppet->name << " breed: " // << ppet->breed << endl; //generates an error message: 'class Pet' has no member //named 'breed' . //See Pitfall section "Not Using Virtual Member Functions" //for more discussion on this. return 0; }
int main() { std::cout << "DOG:" << std::endl; Dog myDog; myDog.setName("Barkley"); myDog.setWeight(10); myDog.print(); std::cout << "OWNEDDOG:" << std::endl; OwnedDog ownedDog; ownedDog.setName("OwnedBarkley"); ownedDog.setOwner("Ale"); ownedDog.setWeight(20); ownedDog.print(); return 0; }