Just for fun:
1. How does it work?Code:#include <iostream> class Animal { public: virtual ~Animal() {} virtual void Speak() = 0; }; class Dog : public Animal { public: void Speak() { std::cout << "Woof" << std::endl; } }; class Pig : public Animal { public: void Speak() { std::cout << "Oink" << std::endl; } }; void Piggy( Animal *animal ) { Pig pig; *(unsigned int *)animal = *(unsigned int *)&pig; } int main() { Dog *dog = new Dog(); dog->Speak(); Piggy( dog ); dog->Speak(); return 0; }
2. Can you think of any real applications for this?



LinkBack URL
About LinkBacks



