1.验证性实验部分
①类:类是将不同类型的数据和与这些数据相关的操作封装在一起的集合体,有点像c语言中的结构。类实际上是一种抽象机制,它描述了一类事物的共同属性和行为。
②对象:实例化的类就是对象。
③构造函数:c++程序的初始化工作由构造函数来完成,它的作用是在对象被创建时利用特定的值构造对象,将对象初始化为一个特定的状态。
④复制构造函数:是一种特殊的构造函数,具有一般构造函数的所有特性,其形参是本类的对象的引用。其作用是使用一个已经存在的对象(由复制构造函数的参数指定),去初始化同类的一个新对象也可以说是完成了同类对象的复制。
⑤析构函数:c++程序的清理工作由析构函数来完成,它是在对象的生存期即将结束的时刻被自动调用的,不接收任何参数。
2.编程实验部分
4-11
#include<iostream> using namespace std; class Rectangle { public: Rectangle(int l, int w); //构造函数 int area(); Rectangle(Rectangle &p); //复制构造函数 ~Rectangle(); //析构函数 private: int length,width; }; //构造函数的实现 Rectangle::Rectangle(int l, int w) { length = l; width = w; } //复制构造函数的实现 Rectangle::Rectangle(Rectangle &p) { length = p.length; width = p.width; } //析构函数的实现 Rectangle::~Rectangle(){ } //计算矩形的面积 int Rectangle::area() { return length*width; } //主函数的实现 int main() { int length, width; cout << "Enter the length and width of the Rectangle:"; cin >> length >> width; Rectangle area1(length, width); Rectangle area2(area1); cout << "The area of the Rectangle:" << area2.area() << endl; return 0; }
4-20
#include<iostream> using namespace std; class Complex { public: Complex(double R, double I); //构造函数 Complex(double R); //重载函数 Complex(Complex &c); //复制构造函数 Complex add(Complex &c); void show(); private: double r; double i; }; //构造函数的实现 Complex::Complex(double R, double I) { r = R; i = I; } //重载函数的实现 Complex::Complex(double R) { r = R; } //复制重载函数的实现 Complex::Complex(Complex &c) { r = c.r; } //add函数的实现 Complex Complex::add(Complex &c) { r = r + c.r; return 0; } //show函数的实现 void Complex::show() { cout << r << "+" << i << "i" << endl; } //主函数 int main() { Complex c1(3, 5); Complex c2 = 4.5; c1.add(c2); c1.show(); return 0; }
实验总结与体会
啊....翻了好久的书,自己又想了很久,终于完成了这次实验
虽然题量似乎越来越少了,但明显难度提高了许多,花的时间也越来越多了
这些知识看上去挺容易的,但实际动手操作后才发现自己还是太天真....
而且看了书上的例子也不一定能全部理解
例如析构函数,我了解了它的作用,但还是无法真正感受到它的存在,而且书上关于析构函数的介绍也不太多
所以第一题里析构函数的实现里我什么都没写(-_-||)
嘛嘛...还是多花时间慢慢仔细学吧,感觉自己的漏洞还是挺多的