Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class apple{
- public:
- apple() { std::cout << "CA\n"; }
- virtual ~apple() {std::cout << "DA\n";}
- virtual void show() {std::cout << "apple\n";}
- };
- class orangeapple: public apple {
- public:
- virtual ~orangeapple() { std::cout << "DOA\n"; }
- virtual void show(int count = 2) { std::cout << "2 orangeapples\n"; }
- };
- class shop {
- public:
- void show(apple& p) { std::cout << "shop - "; p.show(); }
- void show(orangeapple& p) { std::cout << "tropic shop - "; p.show(); }
- };
- int solve()
- {
- shop* s = new shop();
- orangeapple oa;
- oa.show();
- orangeapple* poa = &oa;
- apple* a = dynamic_cast<apple*>(poa);
- s->show(oa);
- s->show(*poa);
- s->show(*a);
- delete s;
- return 0;
- }
- /*
- Output:
- CA
- 2 orangeapples
- tropic shop - 2 orangeapples
- tropic shop - 2 orangeapples
- shop - apple
- DOA
- DA
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement