Boolean第二週作業

2021-08-18 01:37:17 字數 2959 閱讀 4169

為 

rectangle 

類實現建構函式,拷貝建構函式,賦值操作符,析構函式。

class

shape

;             

class

point

;             

class

rectangle: 

public

shape

;思考:

我將所有所需的類寫在了.h 中。並將呼叫函式寫在.cpp 中。這樣方便日後對本例功能完善或改變。

class shape用不到,所以不用處理

class point 應為後面會指標深度cope所以必須要有建構函式

public:

point(int x1, int y1) : x(x1), y(y1) // 建構函式,支援指標型別深度拷貝

int get_x() const

int get_y() const

};

在class rectangle:public shape 中,因為後期要獲取長寬和指標所指的值,所以需新增函式返回其值,設計位成員函式即可,因為複雜度低

int get_width() const 

int get_height() const

point* get_leftup() const

下面為各個類的實現

建構函式的實現

inline rectangle::rectangle(int width1, int height1, int x1, int y1) : width(width1), height(height1), leftup(new point(x1, y1))    //深度拷貝,需要point有建構函式  

拷貝構造的實現

inline rectangle::rectangle(const rectangle& other) : leftup(new point(other.leftup->get_x(), other.leftup->get_y()))     //深度拷貝,需要point有建構函式  

拷貝賦值的實現

inline rectangle& rectangle::operator=(const rectangle& other)              //拷貝賦值函式  

delete this->leftup;

this->leftup = new point(other.leftup->get_x(), other.leftup->get_y());

this->width = other.width;

this->height = other.height;

return *this;

}

對cout的實現

#include using namespace std;

ostream& operator<<(ostream& os, rectangle& str)

主函式的類的呼叫

#include#include"rectangle.h"  

using namespace std;

int main()

下面為完整的**

#ifndef __rectangle_h__  

#define __rectangle_h__

class shape

; class point

// 建構函式,支援指標型別深度拷貝

int get_x() const

int get_y() const

}; class rectangle : public shape

int get_height() const

point* get_leftup() const

}; inline rectangle::rectangle(int width1, int height1, int x1, int y1) : width(width1), height(height1), leftup(new point(x1, y1)) //深度拷貝,需要point有建構函式

inline rectangle::~rectangle()

inline rectangle::rectangle(const rectangle& other) : leftup(new point(other.leftup->get_x(), other.leftup->get_y())) //深度拷貝,需要point有建構函式

inline rectangle& rectangle::operator=(const rectangle& other) //拷貝賦值函式

delete this->leftup;

this->leftup = new point(other.leftup->get_x(), other.leftup->get_y());

this->width = other.width;

this->height = other.height;

return *this;

}#include using namespace std;

ostream& operator<<(ostream& os, rectangle& str)

#endif

#include#include"rectangle.h"  

using namespace std;

int main()

第二週作業

實驗作業 1.編寫調式執行第乙個c 程式,要求輸出你的班級 姓名和學號 2.輸入課本例題1.2,除錯執行程式,並分析程式。3.分析程式中哪些是識別符號,哪些是關鍵字。4.回答什麼是程式 工程,原始檔 目標檔案 執行檔案 編譯預處理 名字空間 函式.主函式 功能 顯示輸出班級 姓名 學號 includ...

第二週作業

第一題 include stdafx.h int main int argc,char argv 第二題 include using namespace std int max int x,int y int main 好吧,老師我實在不知道錯在 啊。我都是照著書本來打的,打了幾次還是這樣。第三題 ...

第二週作業

作業1 輸出學生的班級 姓名和學號 include using namespace std int main 以下是主函式 int main 主函式 int number1,number2 定義兩個基本整型變數 number1和number2 cout 請輸入兩個數 輸出 請輸入兩個數 cin nu...