当前位置:首页 > 《c++》复习题集及答案
(1) (2) (3)
32.class A { char *a; public:
___(1)___ //定义无参构造函数,使a的值为空 A(char *aa) { a=___(2)___;
strcpy(a,aa); //用aa所指字符串初始化a所指向的动态存储空间 }
___(3)___ //定义析构函数,删除a所指向的动态存储空间 };
(1) (2) (3)
33.class A { int a,b; public:
A(int aa=0, int bb=0) ___(1)___ {} //分别用aa和bb对应初始化a和b };
main() {
___(2)___ ; //定义类A的对象x并用5初始化,同时定义y并用x初始化 ___(3)___ ; //定义p指针,使之指向对象x }
(1) (2) (3)
34.class A { int a,b; public:
___(1)___ //定义构造函数,使参数aa和bb的默认值为0, //在函数体中用aa初始化a,用bb初始化b };
main() {
A *p1, *p2;
___(2)___ ; //调用无参构造函数生成由p1指向的动态对象 ___(3)___ ; //调用带参构造函数生成由p2指向的动态对象, //使a和b成员分别被初始化为4和5 }
(1) (2) (3)
35. #include
25
#include
int *a; int n; int MaxLen; public:
A(): a(0), n(0), MaxLen(0) {} A(int *aa, int nn, int MM) { n=nn;
MaxLen=MM;
if(n>MaxLen) exit(1);
___(1)___; //由a指向长度为MaxLen的动态数组 for(int i=0; i ~A() {delete []a;} int GetValue(int i) ___(2)___ //函数体返回a[i]的值 }; void main() { int b[10]={1,2,3,4,5,6,7,8,9,10}; A r(b,10,10); int i,s=0; for(i=0; i<10; i++); ___(3)___ //把r对象的a数据成员中的每个 //元素值依次累加到s中 cout<<\ } (1) (2) (3) 36. #include int *a; int n; int MaxLen; public: A(): a(0), n(0), MaxLen(0) {} A(int *aa, int nn, int MM) { n=nn; MaxLen=MM; if(n>MaxLen) exit(1); a=new int[MaxLen]; ___(1)___; //以i为循环变量把aa数组中每个元素值 //传送给a数组的对应元素中 } ~A(); int GetValue(int i) {return a[i];} //函数体返回a[i]的值 }; 26 ___(2)___ //析构函数的类外定义 void main() { int b[10]={1,2,3,4,5,6,7,8,9,10}; A r(b,10,10); int i,s=0; ___(3)___ ; //以i为循环变量,把r对象的a数据成员中的 //每个元素值依次累加到s中 cout<<\ } (1) (2) (3) 37. 一种类定义如下: class Goods { private: char gd_name[20]; //商品名称 int weight; //商品重量 static int totalweight; //同类商品总重量 public: Goods (char*str,int w){ //构造函数 strcpy(gd_name,str); weight=w; totalweight+=weight; } ~ Goods (){totalweight -= weight;} char* GetN(){___(1)___;} //返回商品名称 int GetW(){return weight;} ___(2)___ GetTotal_Weight() { //定义静态成员函数返回总重量 ___(3)___; } } (1) (2) (3) 38. class Point { private: int x, y; public: Point(){x=y=0;} Point(int x0,int y0) {x=x0;y=y0;} 27 int GetX() { return x; } int GetY() { return y; } void Print(){cout<<\ ___(1)___; //友元函数声明 ___(2)___; //友元函数声明 }; Point operator+(Point& pt,int dd) //加号操作符重载函数,实现Point类对象与整数加法 { Point temp=pt; temp.x+=dd; temp.y+=dd; return temp; } Point operator+(Point& pt1,Point& pt2) //加号操作符重载函数,实现两个Point类对象的加法 { Point temp=pt1; temp.x+=pt2.x; ___(3)___; return temp; } (1) (2) (3) 39. 在下面一段类定义中, Derived类是由直接基类Base 1和Base 2所派生的,Derived类包含有两个间接基类BaseBase,在初始化函数Init中,需要把x1和x2的值分别赋给属于基类Base1的x成员和属于基类Base2的x成员。 class BaseBase { protected: int x; public: BaseBase(){ x = 1;} }; class Base1: public BaseBase { public: Base1(){} }; class Base2: public BaseBase { public: Base2(){} 28
共分享92篇相关文档