Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- /*
- g++ virtualexample.cpp and use ./a.out to run.
- */
- class A{
- public:
- virtual void p(){
- std::cout << "A.p\n";
- }
- void q(){
- std::cout << "A.q\n";
- }
- virtual void r(){
- p();
- q();
- }
- };
- class B : public A{
- public:
- void p(){
- std::cout << "B.p\n";
- }
- };
- class C : public B{
- public:
- void q(){
- std::cout << "C.q\n";
- }
- void r(){
- q();
- p();
- }
- };
- int main(){
- A a;
- C c;
- a = c;
- a.r();
- A* ap = new B;
- ap->r();
- ap = new C;
- ap->r();
- return 0;
- }
- Output:
- A.p
- A.q
- B.p
- A.q
- C.q
- B.p
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement