- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象程序设计(第二次上机实验)
《面向对象程序设计》
上机报告
题目:第二次上机 班级: 学号: 姓名: 上机时间: 题目要求
1.阅读程序,预测功能,再上机编辑、运行该程序,以验证自己的预测。
【思考与练习】
构造函数的作用以及在什么情况下调用构造函数。
作用:不需要用户来调用它,在建立对象时自动识别它,有用户定义,根据初始化的要求设计函数体和函数参数。
在什么情况下拷贝构造函数被调用。
在以下三种情况下,系统自动调用拷贝构造函数。
⑴ 当用类的一个对象去初始化该类的另一个对象时;
⑵ 如果函数的形参是类的对象,调用函数,进行形参和实参的结合时;
⑶ 如果函数的返回值是类的对象,函数执行完成返回调用者时。
3.构造一个圆柱体的类,定义该类对象a,再定义一个和a 同底等高的圆柱体b,计算
a 圆柱体的底面积,计算b 圆柱体的体积。
二
1.定义一个复数类,通过重载运算符: +,-,*,/,直接实现二个复数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求加法“+”用成员函数实现重载,减法“-”用成员函数实现重载。乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。
⑵上机要求
增加重载复数的加法和减法运算符的功能,实现两个复数的加法,一个复数与一个实数的加法;两个复数的减法,一个复数与一个实数的减法。用成员函数实现加法运算符的重载,用友元函数实现减法运算符的重载。
自已设计主函数,完成程序的调试工作 二、题目分析
3,构造函数,通过调用函数实现运算。
2,运用运算符的重载。 三、源代码
1.1
#include iostream.h
class Point
{
public:
Point(int xx = 0, int yy = 0)
{
X = xx; Y = yy;
cout调用构造函数\n;
}
Point(Point p);
int GetX(){ return X; }
int GetY(){ return Y; }
private:
int X,Y;
};
Point::Point(Point p)
{
X = p.X;
Y = p.Y;
cout调用拷贝构造函数\n;
}
void main()
{
Point A(3,4);
//Point B = A;
//Point B; B = A;
Point B(A); //b 行
coutB.GetX()\n;
}
1.2
#include iostream.h
class Point
{
public:
Point(int xx = 0,int yy = 0)
{
X = xx; Y = yy;
cout调用构造函数\n;
}
Point(Point p);
int GetX(){ return X; }
int GetY(){ return Y; }
private:
int X,Y;
};
Point::Point(Point p)
{
X = p.X;
Y = p.Y;
cout调用拷贝构造函数\n;
}
void fun1(Point p)
{
coutp.GetX()\n;
}
void main()
{
Point A(4,5);
Point B(A);
coutB.GetX()\n;
fun1(B); //调用拷贝构造函数,实现形参和实参结合
}
1.3
#include iostream.h
class Point
{
public:
Point(int xx=0,int yy=0)
{
X = xx;
Y = yy;
cout调用构造函数\n;
}
Point(Point p);
int GetX() {return X;}
int GetY() {return Y;}
private:
int X,Y;
};
Point::Point(Point p)
{
X=p.X;
Y=p.Y;
cout调用拷贝构造函数\n;
}
Point fun2()
{
Point
文档评论(0)