Chúng ta đã sử dụng toán tử static_cast để cho phép Pets của chúng ta phát ra tiếng kêu của chúng.
Đây là cách nó hoạt động →
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#include <iostream> #include <string> using namespace std; class Pet { protected: string Name; public: Pet(string n) { Name = n; } void Run(void) { cout << Name << ": I'm running" << endl; } }; class Dog : public Pet { public: Dog(string n) : Pet(n) {}; void MakeSound(void) { cout << Name << ": Woof! Woof!" << endl; } }; class Cat : public Pet { public: Cat(string n) : Pet(n) {}; void MakeSound(void) { cout << Name << ": Meow! Meow!" << endl; } }; int main(void) { Pet *a_pet1 = new Cat("Tom"); Pet *a_pet2 = new Dog("Spike"); a_pet1 -> Run(); static_cast<Cat *>(a_pet1) -> MakeSound(); a_pet2 -> Run(); static_cast<Dog *>(a_pet2) -> MakeSound(); return 0; } |
Output của nó sẽ như sau:
1 2 3 4 |
Tom: I'm running Tom: Meow! Meow! Spike: I'm running Spike: Woof! Woof! |