实验3

四、实验结论

1.验证性实验部分

类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类被称为类的成员。定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。

对象

对象是根据类来创建的。声明类的对象,就像声明基本类型的变量一样。类的对象的公共数据成员可以使用直接成员访问运算符 (.) 来访问。

构造函数

构造函数用于完成成员的初始化工作,如果创建一个类没有写任何构造函数,则系统会自动生成默认的无参构造函数,函数为空,什么都不做,创建对象时根据传入的参数不同调用不同的构造函数。

复制构造函数

复制构造函数参数为类对象本身的引用,用于根据一个已存在的对象复制出一个新的该类的对象,一般在函数中会将已存在对象的数据成员的值复制一份到新创建的对象中,若没有显示的写复制构造函数,则系统会默认创建一个复制构造函数。

析构函数

析构函数就是在类的对象销毁前提供给用户进行最后操作的函数,如果你不定义析构函数的话就会消除,但是如果你定义了析构函数要干嘛,他就会程序结束的时候干嘛。

2.编程实验部分

4-11

#include<iostream>
using namespace std;

class Rectangle {        //声明定义类
public:                  //外部接口
	Rectangle(float l, float w);
	float area();
	 
private:                 //私有数据成员
	float length, width;
};

Rectangle::Rectangle(float l, float w) {
	length = l;
	width = w;
}
//计算面积
float Rectangle::area() {
	return length * width;
}
//主函数
int main() {
	float length, width;
	cout << "Enter the length and width of the rectangle:";
	cin >> length >> width;
	Rectangle space(length, width);
//计算并输出
	float result = space.area();
	cout << "The area is:" << result << endl;

	return 0;
}

4-20

#include<iostream>
using namespace std;
class Complex
{
public:
	Complex(float r1, float i1); //构造函数
	Complex(float r1);   //函数重载
	void add(Complex &c);  //类成员函数
	void show();

private:
	float r;
	float i;
};
Complex::Complex(float r1, float i1)  //构造函数
{
	r = r1;
	i = i1;
}
void Complex::add(Complex &c)  //复制构造函数
{
	r += c.r;
	i += c.i;
}
void Complex::show()   //show函数的实现
{
	cout << r << (i>0 ? '+' : '-') << i << 'i' << endl;
}
Complex::Complex(float r1)   //重载函数
{
	r = r1;
	i = 0;
}
//主函数
int main()   
{
	Complex c1(3, 5);
	Complex c2 = 4.5;
	c1.add(c2);
	c1.show();
	return 0;
}

五、实验总结与体会

通过实验,我加深了对类、对象、构造函数、复制构造函数和析构函数的认识和了解,例题看似简单,但是实际操作要难得多,即使看懂了书上的例题也不一定能完全理解。虽然这次只有两道题,但是大部分内容我还都是模仿的书上的,还是要继续努力。

posted on 2018-04-08 22:23  breadbaek  阅读(106)  评论(3)    收藏  举报