当前位置:首页 > 《面向对象程序设计C》期末试卷及标准答案(B)
{ int a=12,b=89,c=56; exchange(a,b,c);
cout<<\ return 0;
}
2、#include
using namespace std; class Date {public:
Date(int,int,int); Date(int,int); Date(int); Date(); void display(); private:
int month, day, year;
};
Date::Date(int m,int d,int y):month(m),day(d),year(y) { } Date::Date(int m,int d):month(m),day(d) {year=2009;} Date::Date(int m):month(m){day=1; year=2010; }
Date::Date() {month=1; day=1; year=2010; }
void Date::display(){cout< { Date d1(12,31,2009); Date d2(12,31); Date d3(1); Date d4; 第 5 页 d1.display(); d2.display(); d3.display(); d4.display(); return 0; } 3、#include using namespace std; class A { public: A(){cout<<\ ~A(){cout<<\ class B: public A { public: B(){cout<<\ ~B(){cout<<\ class C : public B { public: C(){cout<<\ ~C(){cout<<\ int main() { C c1; return 0; } 四、编程题(共27分) 1、(10分) 已知复数类Complex的声明如下: class Complex {public: 第 6 页 Complex(); //无参构造函数 Complex(double ); //转换构造函数 Complex(double, double);//有两个形参的构造函数 friend Complex operator+(Complex&, Complex&); //对“+”运算符进行重载 friend ostream& operator<<(ostream&, Complex&); //对“<<”运算符进行重载 friend istream& operator>>(istream&, Complex&); //对“>>”运算符进行重载 private: double real,imag; }; 要求:(1)写出该类的所有构造函数的类外定义代码。 (2)写出对运算符“+”、“<<”、“>>”进行重载的运算符重载函数的定义。 2、(17分)下列Shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。 class Shape {public: }; double total(Shape *s[ ], int n) { double sum=0.0; for(int i=0; i return sum; sum+=s[i]->area( ); virtual double area()=0; 第 7 页 } 要求:(1)从Shape类派生圆类(Circle)、正方形类(Square),圆类新增数据成员半径(radius),正方形类新增数据成员边长(a),圆类和正方形类都有构造函数,修改、显示数据成员值的函数,求面积函数。 (2)写出main()函数,计算半径为5.5的圆和边长为9.9的正方形的面积和(必须通过调用total函数计算)。 第 8 页
共分享92篇相关文档