文章目录
- 第十五单元
- 1.编写一个基于对象的程序,求长方体的体积,要求:
- 2.编写strcpy函数(10分)
- 3.建立一个类String,连接两个字符串后。具体要求:
第十五单元
1.编写一个基于对象的程序,求长方体的体积,要求:
① 定义头文件
② 定义一个长方体类Box,
③ 类内有私有数据成员lengh(长),width(宽),height(高)
④ 在类内公有成员函数get_value(),volume()。
⑤ get_value()函数在类外定义,get_value()作用是从键盘输入长,宽,高的值。
⑥ volume()函数在类外定义,volume()的作用是计算长方体的体积并在屏幕上显示。
⑦ 在main()函数定义Box类的对象box1
⑧ 调用get_value()函数给长、宽、高赋值
⑨ 调用volume()函数输出长方体体积。
⑩ 按照题目要求写好注释。
class Box{
private:int lengh;int width;int height;
public:void get_value(); //没有函数体,只有函数定义void volume();
};void Box::get_value(){cout << "输入长宽高" << endl;cin >> lengh >> width >> height;
}void Box::volume(){cout << lengh*width*height << endl;
}int main(){Box box; //创建对象,因为没有带参构造所以不用加()box.get_value(); //调用函数给属性赋值box.volume(); //调用函数计算体积
}
2.编写strcpy函数(10分)
已知strcpy函数的原型是char * strcpy(char * strDest, const char * strSrc);其中strDest是目的字符串,strSrc是源字符串
① 定义头文件
② 不调用C++/C的字符串库函数,请编写函数 strcpy
③ strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
④ 输出正确
char * strcpy(char * arr1, const char * arr2){for(int i = 0;i<2;i++){*arr1 = *arr2; //把arr2的数据给arr1arr2++;arr1++;}
}int main(){char arr1[2]; //空char arr2[2] = {'a','b'};strcpy(arr1,arr2); //字符复制功能//打印看结果for(int i= 0;i<2;i++){cout << arr1[i];}
}
3.建立一个类String,连接两个字符串后。具体要求:
① 按照要求输入头文件
② 定义私有数据成员:int Length;//字符串的长度
③ 定义私有数据成员:char *s; //指向字符串的指针
④ 定义公有成员
⑤ 定义构造函数
⑥ 定义析构函数
⑦ 定义拷贝函数
String operator+(String &);//重载“+”运算符
String operator=(String &);//重载“=”运算符
void show(); //输出两个字符串和结果字符
class String {int len;char *s;
public:String(int len,char *s){this->len = len;this->s=s;}~String(){cout << "这里要销毁对象";}String operator+(String a){char *temp= new char[len+a.len]; //定义空数组strcpy(temp,s); //先把abc放到数组中strcat(temp,a.s); //再把bcd追加进去cout << temp << endl;}String operator=(String a){cout << "这里重载=号"<< endl;}void show(String str1,String str2){str1+str2;}
};
int main(){String a(3,"abc");String b(3,"bcd");a.show(b,a);
} //答案是abcbcd