int main() {
D12 d(1,2,3,4,5,6,7); d.display(); coutvvendl; d.inc1(); d.inc4(); d.inc5(); d.D12::inc1(); d.display(); return 0;
}
运行结果: D2::display() pri1=4,pri2=5 pri4=6 pri12=7
D2::display() pri1=12,pri2=9 pri4=7 pri12=8
/6、阅读程序,写出执行结果并进行简要分析。 #includeviostream> using namespace std; class P {
public:
P(int p1,int p2){pri仁p1;pri2=p2;} int inc1(){return ++pri1;} int inc2(){return ++pri2;}
void display(){coutvv \仁''vvpri1vv \int pri1,pri2;
};
class D1:virtual private P {
public:
D1(int p1,int p2,int p3):P(p1,p2) {
pri3=p3; }
int inc1(){return P::inc1();}
int inc3(){return ++pri3;} void display() {
P::display();
coutvv \} private:
int pri3;
};
class D2:virtual public P
public:
D2(int p1,int p2,int p4):P(p1,p2) {
pri4=p4; }
int inc1() {
P::inc1(); P::inc2(); return P::inc1(); }
int inc4(){return ++pri4;} void display。 {
P::display();
cout<<\} private:
int pri4;
};
class D12:private D1,public D2 { 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 inc1() {
D2::inc1(); return D2::inc1(); }
int inc5() {return ++pri12;}
void display() {
coutvv\D2::display()\\n D2::display();
coutvv \pri12= \vvpri12vvendl; } private:
int pri12; };
int main() {
D12 d(1,2,3,4,5,6,7); d.display(); coutvvendl; d.inc1(); d.inc4(); d.inc5(); d.D12::inc1(); d.display(); return 0; }
运行结果:
D2::display() ri1=1pri2=4 pri4=6 pri12=7
D2::display() ri1=9pri2=8 pri4=7 pri12=8 五、应用题
1、 写一个程序,声明抽象基类 象时给定。
2、 写一个程序,声明抽象类 container,由它派生出正方体(cube)、球体(sphere)和圆 柱体(cylinder),求这3者的表面积和体积。
(1)/*1、写一个程序,声明抽象基类 Shape,由它派生出3个派生类:Circle (圆形)、Rectangle (矩形)、
Shape,由它派生岀3个派生类:Circle (圆形)、Rectangle (矩
形)、Triangle (三角形),用一个函数分别输出 3个图形的面积,3个图形的数据在定义对
C++期末热身第二部分



