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; }
實驗總結與體會
啊....翻了好久的書,自己又想了很久,終於完成了這次實驗
雖然題量似乎越來越少了,但明顯難度提高了許多,花的時間也越來越多了
這些知識看上去挺容易的,但實際動手操作後才發現自己還是太天真....
而且看了書上的例子也不一定能全部理解
例如解構函式,我瞭解了它的作用,但還是無法真正感受到它的存在,而且書上關於解構函式的介紹也不太多
所以第一題裡解構函式的實現裡我什麼都沒寫(-_-||)
嘛嘛...還是多花時間慢慢仔細學吧,感覺自己的漏洞還是挺多的