#include<stdio.h>
class A
{
void fun(){printf(“A”);}
} ;
class B : public A
{
virtual void fun(){printf(“B”);}
};
class C : public B
{
void fun(){printf(“C”);}
};
class D : public C
{
virtual void fun() { printf(“D”); }
virtual void funD() { printf(“D_Test”); }
};
class E : public D
{
virtual void fun() { printf(“E”); }
virtual void funE() { printf(“E_Test”); }
};
class E1 : public D
{
virtual void fun() { printf(“E1”); }
virtual void funE1() { printf(“E1_Test”); }
};
int main()
{
A* p1 = (A*)new B; p1->fun();printf(“,”);
B* p2 = (B*)new C; p2->fun();printf(“,”);
B* p3 = (B*)new D; p3->fun();printf(“,”);
B* p4 = (E*)new D; p4->fun();printf(“,”);
D* p5 = (D*)new E; p5->funD();printf(“,”);
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
p6->funD();printf(“,”);
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
}
I2luY2x1ZGU8c3RkaW8uaD4KY2xhc3MgQQp7CnZvaWQgZnVuKCl7cHJpbnRmKOKAnEHigJ0pO30KfSA7CmNsYXNzIEIgOiBwdWJsaWMgQQp7CiAgdmlydHVhbCB2b2lkIGZ1bigpe3ByaW50ZijigJxC4oCdKTt9Cn07CmNsYXNzIEMgOiBwdWJsaWMgQgp7CnZvaWQgZnVuKCl7cHJpbnRmKOKAnEPigJ0pO30KfTsKY2xhc3MgRCA6IHB1YmxpYyBDCnsKdmlydHVhbCB2b2lkIGZ1bigpIHsgcHJpbnRmKOKAnETigJ0pOyB9CnZpcnR1YWwgdm9pZCBmdW5EKCkgeyBwcmludGYo4oCcRF9UZXN04oCdKTsgfQoKfTsKY2xhc3MgRSA6IHB1YmxpYyBECnsKdmlydHVhbCB2b2lkIGZ1bigpIHsgcHJpbnRmKOKAnEXigJ0pOyB9CnZpcnR1YWwgdm9pZCBmdW5FKCkgeyBwcmludGYo4oCcRV9UZXN04oCdKTsgfQp9OwpjbGFzcyBFMSA6IHB1YmxpYyBECnsKdmlydHVhbCB2b2lkIGZ1bigpIHsgcHJpbnRmKOKAnEUx4oCdKTsgfQp2aXJ0dWFsIHZvaWQgZnVuRTEoKSB7IHByaW50ZijigJxFMV9UZXN04oCdKTsgfQp9OwppbnQgbWFpbigpCnsKQSogcDEgPSAoQSopbmV3IEI7IHAxLT5mdW4oKTtwcmludGYo4oCcLOKAnSk7CkIqIHAyID0gKEIqKW5ldyBDOyBwMi0+ZnVuKCk7cHJpbnRmKOKAnCzigJ0pOwpCKiBwMyA9IChCKiluZXcgRDsgcDMtPmZ1bigpO3ByaW50ZijigJws4oCdKTsKQiogcDQgPSAoRSopbmV3IEQ7IHA0LT5mdW4oKTtwcmludGYo4oCcLOKAnSk7CkQqIHA1ID0gKEQqKW5ldyBFOyBwNS0+ZnVuRCgpO3ByaW50ZijigJws4oCdKTsKRTEqIHA2ID0gKEUxKikgbmV3IEU7IHA2LT5mdW5FMSgpO3ByaW50ZijigJws4oCdKTsKcDYtPmZ1bkQoKTtwcmludGYo4oCcLOKAnSk7CnByaW50ZijigJwgJWQsICVk4oCdLCBzaXplb2YoQikg4oCTIHNpemVvZihBKSwgc2l6ZW9mKEQpIOKAkyBzaXplb2YoQSkpOwp9
prog.cpp:4:19: error: stray ‘\342’ in program
void fun(){printf(“A”);}
^
prog.cpp:4:20: error: stray ‘\200’ in program
void fun(){printf(“A”);}
^
prog.cpp:4:21: error: stray ‘\234’ in program
void fun(){printf(“A”);}
^
prog.cpp:4:23: error: stray ‘\342’ in program
void fun(){printf(“A”);}
^
prog.cpp:4:24: error: stray ‘\200’ in program
void fun(){printf(“A”);}
^
prog.cpp:4:25: error: stray ‘\235’ in program
void fun(){printf(“A”);}
^
prog.cpp:8:29: error: stray ‘\342’ in program
virtual void fun(){printf(“B”);}
^
prog.cpp:8:30: error: stray ‘\200’ in program
virtual void fun(){printf(“B”);}
^
prog.cpp:8:31: error: stray ‘\234’ in program
virtual void fun(){printf(“B”);}
^
prog.cpp:8:33: error: stray ‘\342’ in program
virtual void fun(){printf(“B”);}
^
prog.cpp:8:34: error: stray ‘\200’ in program
virtual void fun(){printf(“B”);}
^
prog.cpp:8:35: error: stray ‘\235’ in program
virtual void fun(){printf(“B”);}
^
prog.cpp:12:19: error: stray ‘\342’ in program
void fun(){printf(“C”);}
^
prog.cpp:12:20: error: stray ‘\200’ in program
void fun(){printf(“C”);}
^
prog.cpp:12:21: error: stray ‘\234’ in program
void fun(){printf(“C”);}
^
prog.cpp:12:23: error: stray ‘\342’ in program
void fun(){printf(“C”);}
^
prog.cpp:12:24: error: stray ‘\200’ in program
void fun(){printf(“C”);}
^
prog.cpp:12:25: error: stray ‘\235’ in program
void fun(){printf(“C”);}
^
prog.cpp:16:29: error: stray ‘\342’ in program
virtual void fun() { printf(“D”); }
^
prog.cpp:16:30: error: stray ‘\200’ in program
virtual void fun() { printf(“D”); }
^
prog.cpp:16:31: error: stray ‘\234’ in program
virtual void fun() { printf(“D”); }
^
prog.cpp:16:33: error: stray ‘\342’ in program
virtual void fun() { printf(“D”); }
^
prog.cpp:16:34: error: stray ‘\200’ in program
virtual void fun() { printf(“D”); }
^
prog.cpp:16:35: error: stray ‘\235’ in program
virtual void fun() { printf(“D”); }
^
prog.cpp:17:30: error: stray ‘\342’ in program
virtual void funD() { printf(“D_Test”); }
^
prog.cpp:17:31: error: stray ‘\200’ in program
virtual void funD() { printf(“D_Test”); }
^
prog.cpp:17:32: error: stray ‘\234’ in program
virtual void funD() { printf(“D_Test”); }
^
prog.cpp:17:39: error: stray ‘\342’ in program
virtual void funD() { printf(“D_Test”); }
^
prog.cpp:17:40: error: stray ‘\200’ in program
virtual void funD() { printf(“D_Test”); }
^
prog.cpp:17:41: error: stray ‘\235’ in program
virtual void funD() { printf(“D_Test”); }
^
prog.cpp:22:29: error: stray ‘\342’ in program
virtual void fun() { printf(“E”); }
^
prog.cpp:22:30: error: stray ‘\200’ in program
virtual void fun() { printf(“E”); }
^
prog.cpp:22:31: error: stray ‘\234’ in program
virtual void fun() { printf(“E”); }
^
prog.cpp:22:33: error: stray ‘\342’ in program
virtual void fun() { printf(“E”); }
^
prog.cpp:22:34: error: stray ‘\200’ in program
virtual void fun() { printf(“E”); }
^
prog.cpp:22:35: error: stray ‘\235’ in program
virtual void fun() { printf(“E”); }
^
prog.cpp:23:30: error: stray ‘\342’ in program
virtual void funE() { printf(“E_Test”); }
^
prog.cpp:23:31: error: stray ‘\200’ in program
virtual void funE() { printf(“E_Test”); }
^
prog.cpp:23:32: error: stray ‘\234’ in program
virtual void funE() { printf(“E_Test”); }
^
prog.cpp:23:39: error: stray ‘\342’ in program
virtual void funE() { printf(“E_Test”); }
^
prog.cpp:23:40: error: stray ‘\200’ in program
virtual void funE() { printf(“E_Test”); }
^
prog.cpp:23:41: error: stray ‘\235’ in program
virtual void funE() { printf(“E_Test”); }
^
prog.cpp:27:29: error: stray ‘\342’ in program
virtual void fun() { printf(“E1”); }
^
prog.cpp:27:30: error: stray ‘\200’ in program
virtual void fun() { printf(“E1”); }
^
prog.cpp:27:31: error: stray ‘\234’ in program
virtual void fun() { printf(“E1”); }
^
prog.cpp:27:34: error: stray ‘\342’ in program
virtual void fun() { printf(“E1”); }
^
prog.cpp:27:35: error: stray ‘\200’ in program
virtual void fun() { printf(“E1”); }
^
prog.cpp:27:36: error: stray ‘\235’ in program
virtual void fun() { printf(“E1”); }
^
prog.cpp:28:31: error: stray ‘\342’ in program
virtual void funE1() { printf(“E1_Test”); }
^
prog.cpp:28:32: error: stray ‘\200’ in program
virtual void funE1() { printf(“E1_Test”); }
^
prog.cpp:28:33: error: stray ‘\234’ in program
virtual void funE1() { printf(“E1_Test”); }
^
prog.cpp:28:41: error: stray ‘\342’ in program
virtual void funE1() { printf(“E1_Test”); }
^
prog.cpp:28:42: error: stray ‘\200’ in program
virtual void funE1() { printf(“E1_Test”); }
^
prog.cpp:28:43: error: stray ‘\235’ in program
virtual void funE1() { printf(“E1_Test”); }
^
prog.cpp:32:37: error: stray ‘\342’ in program
A* p1 = (A*)new B; p1->fun();printf(“,”);
^
prog.cpp:32:38: error: stray ‘\200’ in program
A* p1 = (A*)new B; p1->fun();printf(“,”);
^
prog.cpp:32:39: error: stray ‘\234’ in program
A* p1 = (A*)new B; p1->fun();printf(“,”);
^
prog.cpp:32:41: error: stray ‘\342’ in program
A* p1 = (A*)new B; p1->fun();printf(“,”);
^
prog.cpp:32:42: error: stray ‘\200’ in program
A* p1 = (A*)new B; p1->fun();printf(“,”);
^
prog.cpp:32:43: error: stray ‘\235’ in program
A* p1 = (A*)new B; p1->fun();printf(“,”);
^
prog.cpp:33:37: error: stray ‘\342’ in program
B* p2 = (B*)new C; p2->fun();printf(“,”);
^
prog.cpp:33:38: error: stray ‘\200’ in program
B* p2 = (B*)new C; p2->fun();printf(“,”);
^
prog.cpp:33:39: error: stray ‘\234’ in program
B* p2 = (B*)new C; p2->fun();printf(“,”);
^
prog.cpp:33:41: error: stray ‘\342’ in program
B* p2 = (B*)new C; p2->fun();printf(“,”);
^
prog.cpp:33:42: error: stray ‘\200’ in program
B* p2 = (B*)new C; p2->fun();printf(“,”);
^
prog.cpp:33:43: error: stray ‘\235’ in program
B* p2 = (B*)new C; p2->fun();printf(“,”);
^
prog.cpp:34:37: error: stray ‘\342’ in program
B* p3 = (B*)new D; p3->fun();printf(“,”);
^
prog.cpp:34:38: error: stray ‘\200’ in program
B* p3 = (B*)new D; p3->fun();printf(“,”);
^
prog.cpp:34:39: error: stray ‘\234’ in program
B* p3 = (B*)new D; p3->fun();printf(“,”);
^
prog.cpp:34:41: error: stray ‘\342’ in program
B* p3 = (B*)new D; p3->fun();printf(“,”);
^
prog.cpp:34:42: error: stray ‘\200’ in program
B* p3 = (B*)new D; p3->fun();printf(“,”);
^
prog.cpp:34:43: error: stray ‘\235’ in program
B* p3 = (B*)new D; p3->fun();printf(“,”);
^
prog.cpp:35:37: error: stray ‘\342’ in program
B* p4 = (E*)new D; p4->fun();printf(“,”);
^
prog.cpp:35:38: error: stray ‘\200’ in program
B* p4 = (E*)new D; p4->fun();printf(“,”);
^
prog.cpp:35:39: error: stray ‘\234’ in program
B* p4 = (E*)new D; p4->fun();printf(“,”);
^
prog.cpp:35:41: error: stray ‘\342’ in program
B* p4 = (E*)new D; p4->fun();printf(“,”);
^
prog.cpp:35:42: error: stray ‘\200’ in program
B* p4 = (E*)new D; p4->fun();printf(“,”);
^
prog.cpp:35:43: error: stray ‘\235’ in program
B* p4 = (E*)new D; p4->fun();printf(“,”);
^
prog.cpp:36:38: error: stray ‘\342’ in program
D* p5 = (D*)new E; p5->funD();printf(“,”);
^
prog.cpp:36:39: error: stray ‘\200’ in program
D* p5 = (D*)new E; p5->funD();printf(“,”);
^
prog.cpp:36:40: error: stray ‘\234’ in program
D* p5 = (D*)new E; p5->funD();printf(“,”);
^
prog.cpp:36:42: error: stray ‘\342’ in program
D* p5 = (D*)new E; p5->funD();printf(“,”);
^
prog.cpp:36:43: error: stray ‘\200’ in program
D* p5 = (D*)new E; p5->funD();printf(“,”);
^
prog.cpp:36:44: error: stray ‘\235’ in program
D* p5 = (D*)new E; p5->funD();printf(“,”);
^
prog.cpp:37:42: error: stray ‘\342’ in program
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
^
prog.cpp:37:43: error: stray ‘\200’ in program
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
^
prog.cpp:37:44: error: stray ‘\234’ in program
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
^
prog.cpp:37:46: error: stray ‘\342’ in program
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
^
prog.cpp:37:47: error: stray ‘\200’ in program
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
^
prog.cpp:37:48: error: stray ‘\235’ in program
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
^
prog.cpp:38:19: error: stray ‘\342’ in program
p6->funD();printf(“,”);
^
prog.cpp:38:20: error: stray ‘\200’ in program
p6->funD();printf(“,”);
^
prog.cpp:38:21: error: stray ‘\234’ in program
p6->funD();printf(“,”);
^
prog.cpp:38:23: error: stray ‘\342’ in program
p6->funD();printf(“,”);
^
prog.cpp:38:24: error: stray ‘\200’ in program
p6->funD();printf(“,”);
^
prog.cpp:38:25: error: stray ‘\235’ in program
p6->funD();printf(“,”);
^
prog.cpp:39:8: error: stray ‘\342’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:9: error: stray ‘\200’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:10: error: stray ‘\234’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:18: error: stray ‘\342’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:19: error: stray ‘\200’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:20: error: stray ‘\235’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:33: error: stray ‘\342’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:34: error: stray ‘\200’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:35: error: stray ‘\223’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:58: error: stray ‘\342’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:59: error: stray ‘\200’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:60: error: stray ‘\223’ in program
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp: In member function ‘void A::fun()’:
prog.cpp:4:26: error: expected primary-expression before ‘)’ token
void fun(){printf(“A”);}
^
prog.cpp: In member function ‘virtual void B::fun()’:
prog.cpp:8:36: error: expected primary-expression before ‘)’ token
virtual void fun(){printf(“B”);}
^
prog.cpp: In member function ‘virtual void C::fun()’:
prog.cpp:12:26: error: expected primary-expression before ‘)’ token
void fun(){printf(“C”);}
^
prog.cpp: In member function ‘virtual void D::fun()’:
prog.cpp:16:36: error: expected primary-expression before ‘)’ token
virtual void fun() { printf(“D”); }
^
prog.cpp: In member function ‘virtual void D::funD()’:
prog.cpp:17:33: error: ‘D_Test’ was not declared in this scope
virtual void funD() { printf(“D_Test”); }
^~~~~~
prog.cpp: In member function ‘virtual void E::fun()’:
prog.cpp:22:36: error: expected primary-expression before ‘)’ token
virtual void fun() { printf(“E”); }
^
prog.cpp: In member function ‘virtual void E::funE()’:
prog.cpp:23:33: error: ‘E_Test’ was not declared in this scope
virtual void funE() { printf(“E_Test”); }
^~~~~~
prog.cpp: In member function ‘virtual void E1::fun()’:
prog.cpp:27:37: error: expected primary-expression before ‘)’ token
virtual void fun() { printf(“E1”); }
^
prog.cpp: In member function ‘virtual void E1::funE1()’:
prog.cpp:28:34: error: ‘E1_Test’ was not declared in this scope
virtual void funE1() { printf(“E1_Test”); }
^~~~~~~
prog.cpp: In function ‘int main()’:
prog.cpp:32:28: error: ‘void A::fun()’ is private within this context
A* p1 = (A*)new B; p1->fun();printf(“,”);
^
prog.cpp:4:6: note: declared private here
void fun(){printf(“A”);}
^~~
prog.cpp:32:40: error: expected primary-expression before ‘,’ token
A* p1 = (A*)new B; p1->fun();printf(“,”);
^
prog.cpp:32:44: error: expected primary-expression before ‘)’ token
A* p1 = (A*)new B; p1->fun();printf(“,”);
^
prog.cpp:33:28: error: ‘virtual void B::fun()’ is private within this context
B* p2 = (B*)new C; p2->fun();printf(“,”);
^
prog.cpp:8:16: note: declared private here
virtual void fun(){printf(“B”);}
^~~
prog.cpp:33:40: error: expected primary-expression before ‘,’ token
B* p2 = (B*)new C; p2->fun();printf(“,”);
^
prog.cpp:33:44: error: expected primary-expression before ‘)’ token
B* p2 = (B*)new C; p2->fun();printf(“,”);
^
prog.cpp:34:28: error: ‘virtual void B::fun()’ is private within this context
B* p3 = (B*)new D; p3->fun();printf(“,”);
^
prog.cpp:8:16: note: declared private here
virtual void fun(){printf(“B”);}
^~~
prog.cpp:34:40: error: expected primary-expression before ‘,’ token
B* p3 = (B*)new D; p3->fun();printf(“,”);
^
prog.cpp:34:44: error: expected primary-expression before ‘)’ token
B* p3 = (B*)new D; p3->fun();printf(“,”);
^
prog.cpp:35:28: error: ‘virtual void B::fun()’ is private within this context
B* p4 = (E*)new D; p4->fun();printf(“,”);
^
prog.cpp:8:16: note: declared private here
virtual void fun(){printf(“B”);}
^~~
prog.cpp:35:40: error: expected primary-expression before ‘,’ token
B* p4 = (E*)new D; p4->fun();printf(“,”);
^
prog.cpp:35:44: error: expected primary-expression before ‘)’ token
B* p4 = (E*)new D; p4->fun();printf(“,”);
^
prog.cpp:36:29: error: ‘virtual void D::funD()’ is private within this context
D* p5 = (D*)new E; p5->funD();printf(“,”);
^
prog.cpp:17:14: note: declared private here
virtual void funD() { printf(“D_Test”); }
^~~~
prog.cpp:36:41: error: expected primary-expression before ‘,’ token
D* p5 = (D*)new E; p5->funD();printf(“,”);
^
prog.cpp:36:45: error: expected primary-expression before ‘)’ token
D* p5 = (D*)new E; p5->funD();printf(“,”);
^
prog.cpp:37:33: error: ‘virtual void E1::funE1()’ is private within this context
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
^
prog.cpp:28:14: note: declared private here
virtual void funE1() { printf(“E1_Test”); }
^~~~~
prog.cpp:37:45: error: expected primary-expression before ‘,’ token
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
^
prog.cpp:37:49: error: expected primary-expression before ‘)’ token
E1* p6 = (E1*) new E; p6->funE1();printf(“,”);
^
prog.cpp:38:10: error: ‘virtual void D::funD()’ is private within this context
p6->funD();printf(“,”);
^
prog.cpp:17:14: note: declared private here
virtual void funD() { printf(“D_Test”); }
^~~~
prog.cpp:38:22: error: expected primary-expression before ‘,’ token
p6->funD();printf(“,”);
^
prog.cpp:38:26: error: expected primary-expression before ‘)’ token
p6->funD();printf(“,”);
^
prog.cpp:39:12: error: expected primary-expression before ‘%’ token
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:13: error: ‘d’ was not declared in this scope
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:16: error: expected primary-expression before ‘%’ token
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^
prog.cpp:39:37: error: expected ‘)’ before ‘sizeof’
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^~~~~~
prog.cpp:39:62: error: expected ‘)’ before ‘sizeof’
printf(“ %d, %d”, sizeof(B) – sizeof(A), sizeof(D) – sizeof(A));
^~~~~~