:D1(p11,p12,p13),D2(p21,p22,p23) { pri12=p; } int inc5() { return ++pri12; } void display() { cout<<\ D2::display(); cout<<\ } };
void main ()
{ D12 d(1,2,3,4,5,6,7); d.display(); cout< 参考答案: D2::display() pri1=4,pri2=5 pri4=6 Pri12=7 D2::display() pri1=4,pri2=5 pri4=7 Pri12=8 (16)#include class P { int pri1,pri2; public: P(int p1,int p2) { pri1=p1; pri2=p2; } int incl() { return ++pri1; } void display() { cout<<\ }; class D1:virtual private P { int pri3; public: D1(int p1,int p2,int p3):P(p1,p2) { pri3=p3; } int inc3() { return ++pri3; } void display() { P::display(); cout<<\ }; class D2:virtual public P { 25 int pri4; public: D2(int p1, int p2, int p4):P(p1,p2) { pri4=p4; } int inc4() { return ++pri4; } void display() { P::display(); cout<<\ }; class D12:private D1,public D2{ int pri12; public: D12(int p11,int p12,int p13,int p21,int p22,int p23,int p) :D1(p11,p12,p13),D2(p21,p22,p23),P(p11,p21){ pri12=p; } int inc5() { return ++pri12; } void display() { cout<<\ D2::display(); cout<<\ } }; void main() { D12 d(1,2,3,4,5,6,7); d.display(); cout< 参考答案: D2::display() pri1=1,pri2=4 pri4=6 Pri12=7 D2::display() pri1=3,pri2=4 pri4=7 Pri12=8 (17)#include 26 B(int i) { b=i+50; show(); } void show() { cout<<\ }; class D:private B { int d; public: D(int i):B(i) { d=i+100; show(); } void show() { cout<<\ }; void main() { D d1(105); } 参考答案: B::show() called.155 D::show().205 (18)#include class B { int b; public: B(){ } B(int i) { b=i; } virtual void virfun() { cout<<\ }; class D:public B { int d; void virfun() { cout<<\ public: D(){} D(int i,int j):B(i) { d=j; } }; void fun(B*obj) { obj->virfun (); } void main() { B*pb=new B; fun(pb); D *pd=new D; fun(pd); } 参考答案: B::virfun() called. D::virfun() called. (19)#include 27 class A { protected: char ver; public: A() { ver='A'; } virtual void print() { cout<<\ }; class D1:public A { int info; public: D1(int number) { info=number; ver='1'; } void print() { cout<<\ }; class D2:public A { int info; public: D2(int number) { info=number; } void print() { cout<<\ }; class D3:public D1 { int info; public: D3(int number):D1(number) { info=number;ver='3'; } void print() { cout<<\ }; void print_info(A*p) { p->print (); } void main() { A a; D1 d1(4); D2 d2(100); D3 d3(-25); print_info(&a); print_info(&d1); print_info(&d2); print_info(&d3); } 参考答案: The A version A The D1 info:4 version 1 The D2 info:100 version A The D3 info:-25 version 3 (20)#include class Shape { protected: double x,y; public: Shape(double a,double b):x(a),y(b) { } virtual double Area() const { return 0.0; } }; 28 class Circle:public Shape { double r; public: Circle(double a,double b,double c):Shape(a,b),r(c) { } double Area() const { return 3.1415*r*r; } }; class Rectangle:public Shape { double h,w; public: Rectangle(double a,double b,double c,double d):Shape(a,b) { h=c; w=d; } double Area() const { return h*w; } }; void fun(Shape &s) { cout< { Circle c(2.5,15.0,4.8); fun(c); Rectangle r(22.0,50,10.6,2.0); fun(r); } 参考答案: 72.38016 21.2 (21)#include 29 mmmnnnpppqqq ok! (22)#include file1.open(\ if(!file1) { cout<<\ abort(); } char textline[]=\ for(int i=0;i { ostrstream s; } s<<\ s<<'\\0'; char *buf=s.str(); cout< ▲ 参考答案:Hi,good morning!\ 30