C上机实验Word格式文档下载.doc
- 文档编号:13250120
- 上传时间:2022-10-08
- 格式:DOC
- 页数:8
- 大小:60KB
C上机实验Word格式文档下载.doc
《C上机实验Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《C上机实验Word格式文档下载.doc(8页珍藏版)》请在冰豆网上搜索。
5.掌握构造函数和析构函数的作用和编写方法。
6.了解并掌握静态成员、常成员的使用。
二、实验内容与设计思想
1.下面的程序在编译时会出错,请修改程序,使之能正确运行。
然后得到的正确程序分成3个文件。
文件MyClass.h包括类的定义,文件MyClass.cpp包括类成员函数的实现,文件App.cpp包括类的使用。
调试、运行该程序,使之获得正确结果。
#include<
iostream>
usingnamespacestd;
classMyClass{
public:
MyClass(){x=0;
y=0;
}
MyClass(inta=0,b=0);
Print();
private:
intx,y;
};
MyClass:
:
MyClass(inta=0,intb=0){x=a;
y=b;
}
voidMyClass:
Print(){
cout<
<
"
x="
<
x<
endl;
y="
y<
}
intmain(){
MyClassobj1,obj2(5,8);
obj1.x=1;
obj1.y=3;
obj1.Print();
obj2.Print();
return0;
}
实验代码:
MyClass.h
#ifndefMYCLASS
#defineMYCLASS
//MyClass.h头文件的内容
classMyClass{
MyClass(){x=0;
y=0;
}
MyClass(inta=0,intb=0);
voidPrint();
intx,y;
#endif
MyClass.cpp
#include"
MyClass.h"
MyClass(inta,intb){x=a;
y=b;
Print(){
cout<
App.cpp
intmain()
{
MyClassobj1(1,3),obj2(5,8);
2.已知两个矩形的长和宽,用面向对象的概念编程求它们的面积和周长。
假设矩形1的长和宽分别为20和50;
矩形2的长和宽分别为3.6和4.5。
(先定义矩形类再实例化两个对象)
classrectangular{
rectangular(inta,intb)
{
Long=a;
Wide=b;
}
//面积
intArea()
{
returnLong*Wide;
//周长
intPerimeter()
return2*(Long+Wide);
intLong;
//长
intWide;
//宽
rectangularrec1(1,3),rec2(5,8);
矩形1的面积为:
"
rec1.Area()<
endl<
矩形1的周长为:
rec1.Perimeter()<
矩形2的面积为:
rec2.Area()<
矩形2的周长为:
rec2.Perimeter()<
3.下面程序中定义了一个整型动态数组,编写了3个构造函数。
classIntArray{
IntArray(intsz);
//数组初始化为sz个元素,初值全为0
IntArray(int*array,intsz);
//用静态数组array的前sz个元素初始化新数组
IntArray(constIntArray&
rhs);
//拷贝构造函数
voidprintAll();
int*ia;
intsize;
IntArray:
IntArray(intsz){
size=sz;
//设置数据成员
ia=newint[size];
for(intix=0;
ix<
size;
++ix)
ia[ix]=0;
//初始化数组元素
IntArray(int*array,intsz){
ia[ix]=array[ix];
//拷贝数据成员
IntArray(constIntArray&
rhs)
{
size=rhs.size;
for(intix=0;
ix++)
ia[ix]=rhs.ia[ix];
voidIntArray:
printAll()
cout<
ia[ix]<
"
;
cout<
endl;
inta[10]={1,2,3,4,5,6,7,8,9,10};
IntArrayarr1(10),arr2(a,5),arr3(arr2);
arr1.printAll();
arr2.printAll();
arr3.printAll();
(1)为IntArray加上析构函数并编译运行程序,体会类的构造函数和析构函数的作用。
(2)程序中,类IntArray的三个构造函数都是以相似的方式来实现的。
一般来说,当两个或多个函数重复相同的代码时,可将这部分代码抽取出来,形成独立的函数,以便共享。
以后如果需要改变这些实现,则只需改变一次,而且这种实现的共享本质更容易为大家所理解。
怎样把构造函数中的代码抽取出来形成独立的共享函数呢?
请给出一种可能的实现。
按你给出的实现方法修改程序并重新编译运行。
IntArray(int*array,intsz);
IntArray(constIntArray&
rhs);
voidprintAll();
voidcommon(int*array,intsz);
~IntArray(){delete[]ia;
IntArray(intsz){
int*array=NULL;
size=sz;
common(array,size);
IntArray(int*array,intsz){
IntArray(constIntArray&
rhs)
int*array=rhs.ia;
common(array,rhs.size);
for(intix=0;
++ix)
ia[ix]<
common(int*array,intsz)
ia=newint[size];
if(array!
=NULL)
for(intix=0;
ia[ix]=ix+1;
else
ia[ix]=0;
inta[10]={1,2,3,4,5,6,7,8,9,10};
IntArrayarr1(10),arr2(a,5),arr3(arr2);
4.设有一个点myPoint类的定义如下:
classmyPoint{
myPoint(doublex0=0.0,doubley0=0.0):
x(x0),y(y0){}
myPoint(myPoint&
np):
x(np.x),y(np.y){}
doubleGetX(){returnx;
doubleGetY(){returny;
voidSetX(doublex0){x=x0;
voidSetY(doubley0){x=y0;
voidSetPoi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)