為
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...