freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語(yǔ)言程序設(shè)計(jì)(下)ppt-資料下載頁(yè)

2024-10-17 00:38本頁(yè)面
  

【正文】 p) { x = ()。 y = ()。 } ostream amp。operator (ostream amp。os, const Point amp。point) { os39。(39。 , 39。)39。 return os。 } 例子 7:軟件漸增式開(kāi)發(fā) (part 1,5/5) //文件 , 第一個(gè)程序 include main() { // 聲明并輸出兩個(gè)點(diǎn) Point p1(, )。 Point p2(, )。 cout p1:\t p1 endl。 cout p2:\t p2 endl。 return 0。 } 例子 7:軟件漸增式開(kāi)發(fā) (part 2,1/6) //文件 , 類(lèi) Line的定義 if !defined __LINE__H__ define __LINE__H__ include include class Line { friend ostream amp。 operator(ostream amp。, const Line amp。)。 public: // 重載的構(gòu)造函數(shù) Line(double startX=0, double startY=0, double endX = 0, double endY = 0)。 Line(Point start, Point end)。 //復(fù)制構(gòu)造函數(shù) // 析構(gòu)函數(shù) ~Line()。 例子 7:軟件漸增式開(kāi)發(fā) (part 2,2/6) // 重載的定值函數(shù) void setLine(double startX=0,double startY=0, double endX=0, double endY=0)。 void setLine(Point , Point )。 double getLength() const。 // 計(jì)算線段的長(zhǎng)度 // 取值函數(shù) Point getStartPoint() {return startPoint。} Point getEndPoint() {return endPoint。} private: Point startPoint, endPoint。 }。 endif 例子 7:軟件漸增式開(kāi)發(fā) (part 2,3/6) //文件 , 類(lèi) Line的實(shí)現(xiàn) include include Line::Line(double startX, double startY, double endX, double endY) :startPoint(startX, startY),endPoint(endX, endY) {} Line::Line(Point start, Point end) :startPoint(start), endPoint(end) {} Line::~Line() {} 例子 7:軟件漸增式開(kāi)發(fā) (part 2,4/6) void Line::setLine(double startX, double startY, double endX, double endY) { (startX, startY)。 (endX, endY)。 } void Line::setLine(Point start, Point end) { (start)。 (end)。 } double Line::getLength() const { double x1 = ()。 double y1 = ()。 double x2 = ()。 double y2 = ()。 return sqrt((x2x1)*(x2x1)+(y2y1)*(y2y1))。 } 例子 7:軟件漸增式開(kāi)發(fā) (part 2,5/6) ostreamamp。 operator(ostream amp。os,const Lineamp。 line) { os . 。 os Its length is ()。 return os。 } 例子 7:軟件漸增式開(kāi)發(fā) (part 2,6/6) //文件 , 第二個(gè)程序 include main() { Point p1(, )。 Point p2(, )。 cout p1:\t p1 endl。 cout p2:\t p2 endl。 Line l1 (p1, p2)。 Line l2 (, , , )。 cout \nl1:\t l1 endl。 cout l2:\t l2 endl。 return 0。 } 例子 7:軟件漸增式開(kāi)發(fā) (part 3,1/5) // 文件 , 類(lèi) Polygon的定義 include include define MAX_BorderNumber 6 class Polygon { friend ostreamamp。 operator(ostreamamp。, const Polygonamp。)。 public: Polygon(Point points[], int num)。 ~Polygon()。 int getNumber() const{ return number。}。 double getPerimeter() const。 protected: Line borders [MAX_BorderNumber]。 int number。 }。 例子 7:軟件漸增式開(kāi)發(fā) (part 3,2/5) // 文件 , 類(lèi) Polygon的實(shí)現(xiàn) include Polygon::Polygon(Point points[], int num) { number = num。 for (int i = 0。 i num。 i ++) borders[i].setLine(points[i],points[(i+1)%num])。 } Polygon::~Polygon() {} double Polygon::getPerimeter() const { double perimeter = 。 for (int i = 0。 i number。 i ++) perimeter += borders[i].getLength()。 return perimeter。 } 例子 7:軟件漸增式開(kāi)發(fā) (part 3,3/5) ostreamamp。 operator(ostream amp。os, const Polygon amp。polygon) { os \tThe polygon has border(s): 。 for (int i = 0。 i 。 i ++) os \n\tborder[ i ]: \t [i]。 os \n\tIts perimeter is: () endl。 return os。 } 例子 7:軟件漸增式開(kāi)發(fā) (part 3,4/5) //文件 , 第三個(gè)程序 include main() { Point p1(, )。 Point p2(, )。 cout p1:\t p1 endl。 cout p2:\t p2 endl。 Line l1 (p1, p2)。 Line l2 (, , , )。 cout \nl1:\t l1 endl。 cout l2:\t l2 endl。 例子 7:軟件漸增式開(kāi)發(fā) (part 3,5/5) // 聲明并輸出一個(gè)多邊形 (五邊形 ) Point points5[5]。 points5[0].setPoint(0, 0)。 points5[1].setPoint(0, 1)。 points5[2].setPoint(1, 2)。 points5[3].setPoint(, 2)。 points5[4].setPoint(2, )。 Polygon ply(points5, 5)。 cout \nply: ply endl。 return 0。 } 學(xué)習(xí)目的檢測(cè) ? 理解繼承的概念 ? 掌握如何通過(guò)繼承建立類(lèi)的層次結(jié)構(gòu) ? 掌握通過(guò)類(lèi)指針操作繼承關(guān)系中的對(duì)象的方法 ? 掌握如何使用復(fù)合和繼承進(jìn)行軟件的漸增式開(kāi)發(fā) ? 了解多重繼承 作業(yè) 第 15章 多態(tài)性 講授內(nèi)容 ? 靜態(tài)綁定和動(dòng)態(tài)綁定的概念 ? 多態(tài)性的意義和作用 ? 虛函數(shù)的定義方法 ? 抽象基類(lèi)的作用和定義方法 ? 虛析構(gòu)函數(shù)的作用和使用方法 ? 如何在程序中實(shí)現(xiàn)多態(tài)性 多態(tài)性的概念 (1/5) ? 多態(tài)性:具有繼承關(guān)系的類(lèi),其對(duì)象對(duì)同一個(gè)函數(shù)調(diào)用可以作出不同的響應(yīng) ? 同一個(gè)函數(shù)調(diào)用 ——同一條函數(shù)調(diào)用語(yǔ)句 ? 不同的響應(yīng) ——執(zhí)行不同的函數(shù) 多態(tài)性的概念 (2/5) ? 靜態(tài)綁定和動(dòng)態(tài)綁定 ? 靜態(tài)綁定 ——編譯時(shí)就能確定一條函數(shù)調(diào)用語(yǔ)句要調(diào)用的函數(shù) ? 和面向?qū)ο蟮乃枷氩惶喾? ? 一條指令對(duì)應(yīng)不同對(duì)象的不同操作 ——現(xiàn)實(shí)需要 多態(tài)性的概念 (3/5) ? 靜態(tài)綁定和動(dòng)態(tài)綁定 ? 動(dòng)態(tài)綁定:運(yùn)行時(shí)才能確定函數(shù)調(diào)用語(yǔ)句調(diào)用的函數(shù) ? 調(diào)用對(duì)象的成員函數(shù)時(shí)(通過(guò)引用或指針),編譯器暫不確定要調(diào)用的函數(shù) ? 編譯器檢查被調(diào)用函數(shù)是否存在(函數(shù)名、參數(shù)列表、返回值) ? 程序運(yùn)行時(shí),系統(tǒng)根據(jù)接收消息的對(duì)象類(lèi)型來(lái)確定要調(diào)用的函數(shù) 多態(tài)性的概念 (4/5) ? 多態(tài)性的實(shí)現(xiàn) ? 通過(guò)基類(lèi)指針或引用調(diào)用虛函數(shù) ? 動(dòng)態(tài)綁定 ? 多態(tài)性有助于更好地對(duì)程序進(jìn)行抽象 ? 控制模塊能專(zhuān)注于一般性問(wèn)題的處理 ? 具體的操作交給具體的對(duì)象去做 多態(tài)性的概念 (5/5) ? 多態(tài)性有助于提高程序的可擴(kuò)展性 ? 可以把控制模塊與被操作的對(duì)象分開(kāi) ? 可以添加已定義類(lèi)的新對(duì)象,并能管理該對(duì)象 ? 可以添加新類(lèi)(已有類(lèi)的派生類(lèi))的新對(duì)象,并能管理該對(duì)象 ? 常用的程序設(shè)計(jì)方法 ? 為具有繼承關(guān)系的類(lèi)定義接口(虛函數(shù)) ? 用鏈表或數(shù)組組織所有對(duì)象 ? 用基類(lèi)指針操作這些對(duì)象 虛函數(shù) ? 虛函數(shù)的定義 ? 在函數(shù)原型前加上關(guān)鍵字 virtual ? 如果一個(gè)函數(shù)在基類(lèi)中被聲明為虛函數(shù),則他在所有派生類(lèi)中都是虛函數(shù)(包括重定義函數(shù)) virtual void show()。 ? 只有通過(guò)基類(lèi)指針或引用調(diào)用虛函數(shù)才能引發(fā)動(dòng)態(tài)綁定 例子 1:虛函數(shù)與多態(tài)性例子 (1/3) //文件 //定義基類(lèi) if !defined __BASE__H__ define __BASE__H__ include class Base { public: virtual void show() { coutI am Base39。s object!\n。 } }。 endif 例子 1:虛函數(shù)與多態(tài)性例子 (2/3) //文件 //定義基類(lèi) Derived if !defined __DERIVED__H__ define __DERIVED__H__ include class Derived :public Base{ public: void show() { coutI am Derived39。s object!\n。 } }。 endif 例子 1:虛函數(shù)與多態(tài)性例子 (3/3) //文件 //測(cè)試多重繼承的類(lèi)層次 include main() { Base *bPtr, bObj。 Derived dObj。 bPtr= amp。bObj。 //基類(lèi)指針指向基類(lèi)對(duì)象 bPtrshow()。 //用基類(lèi)指針調(diào)用成員函數(shù) , 動(dòng)態(tài)綁定 bPtr= amp。dObj。 //基類(lèi)指針指向
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1