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

正文內容

[計算機軟件及應用]c-資料下載頁

2024-10-16 23:09本頁面
  

【正文】 er endl。 cout Level: 。 switch (level) { case FRESHMAN: cout freshman。 break。 case SOPHOMORE: cout sophomore。 break。 case JUNIOR: cout junior。 break。 case SENIOR: cout senior。 break。 } cout endl。 cout Grade: 。 switch (grade) { case A: cout A。 break。 case B: cout B。 break。 case C: cout C。 break。 case D: cout D。 break。 } cout endl。 } 85 深 度 探 索 C++語言程序設計 清華大學 鄭莉 例 49 int main() { Student s(12345678, SOPHOMORE, B)。 cout Size of Student: sizeof(Student) endl。 ()。 return 0。 } 運行結果:(運行結果第一行會因編譯環(huán)境的不同而有所差異) Size of Student: 4 Number: 12345678 Level: sophomore Grade: B 86 深 度 探 索 C++語言程序設計 清華大學 鄭莉 臨時對象與類型轉換 ( 例 42中 Point構造函數(shù): Point(int xx = 0, int yy = 0) ) ? 臨時對象的顯式創(chuàng)建 – 可以直接調用類的構造函數(shù)顯式創(chuàng)建臨時對象 例: Line x(Point(1, 1), Point(4, 5))。 – 臨時對象到表達式執(zhí)行完畢后即銷毀 ? 單參數(shù)構造函數(shù)可以設立類型轉換 – Point(1)表示創(chuàng)建一個臨時對象,同時也表示顯式類型轉換 – 與 Point(1)等價的形式: ? (Point) 1 ? static_castPoint(1) – 無論形式為何,執(zhí)行轉換時都會創(chuàng)建臨時對象 87 深 度 探 索 C++語言程序設計 清華大學 鄭莉 隱含轉換 ? 由構造函數(shù)確立的類型轉換,可以隱含執(zhí)行 – 例: Line x(1, 4)。 – 效果 :構造以 (1,0)和 (4,0)兩坐標為端點的線段,這里 Point的構造函數(shù)被隱含調用 ? 避免隱含轉換的發(fā)生 –在構造函數(shù)中使用 explicit關鍵字,explicit要寫在類定義中的構造函數(shù)前 88 深 度 探 索 C++語言程序設計 清華大學 鄭莉 例 410 include iostream using namespace std。 class Complex { //復數(shù)類 private: float real, imag。//復數(shù)的實部和虛部 public: //構造函數(shù),可以當作隱式類型轉換使用 Complex(float real = 0, float imag = 0) : real(real), imag(imag) { } Complex add(Complex c) { //復數(shù)加法,生成臨時對象并返回 return Complex(real + , imag + )。 } Complex sub(Complex c) { //復數(shù)減法,生成臨時對象并返回 return Complex(real , imag )。 } Complex mul(Complex c) { //復數(shù)乘法,生成臨時對象并返回 return Complex(real * imag * , real * + imag * )。 } 89 深 度 探 索 C++語言程序設計 清華大學 鄭莉 例 410 void show() { //顯示復數(shù) if (imag = 0) cout real + imag 39。i39。 endl。 else cout real imag 39。i39。 endl。 } }。 int main() { Complex z(1, 2)。 //z = 1 + 2i (Complex(3, 4)).show()。 //Complex(3, 4)是臨時對象 static_castComplex(5).sub(z).show()。 //輸出 5 – z,使用了顯示類型轉換 ().show()。 //輸出 z * (3),使用了隱含類型轉換 return 0。 } 運行結果: 4 + 6i 4 2i 3 6i 90 深 度 探 索 C++語言程序設計 清華大學 鄭莉 成員函數(shù)的調用 ? 成員函數(shù)調用的實現(xiàn)機制 – 問題的關鍵:如何傳遞調用的目的對象 – 解決辦法:把目的對象的引用當作參數(shù)傳遞 91 void Clock::setTime(int newH, int newM, int newS) { hour = newH。 minute = newM。 second = newS。 } void Clock_setTime(_Clock amp。_this, int newH, int newM, int newS) { = newH。 = newM。 = newS。 } Clock_setTime(myClock, 8, 30, 30)。 (8, 30, 30)。 深 度 探 索 C++語言程序設計 清華大學 鄭莉 構造函數(shù)的調用 92 Line::Line(Point xp1, Point xp2) : p1(xp1), p2(xp2) { double x = () ()。 double y = () ()。 len = sqrt(x * x + y * y)。 } void Line_Line(_Line amp。_this, _Point xp1, _Point xp2) { Point_Point(, xp1)。 Point_Point(, xp2)。 double x = Point_getX() Point_getX()。 double y = Point_getY() Point_getY()。 = sqrt(x * x + y * y)。 } Line line(myp1, myp2)。 _Line line。 Line_Line(line, myp1, myp2)。 先分配空間,再調用構造函數(shù) 深 度 探 索 C++語言程序設計 清華大學 鄭莉 對象作為參數(shù)的傳遞方式 ? 對象參數(shù)的傳遞方式 – 通過運行棧來傳遞 – 主調函數(shù)調用拷貝構造函數(shù),在運行棧的傳參區(qū)域上創(chuàng)建對象 – 被調函數(shù)可以讀取傳參區(qū)域上的對象 ? 有時對拷貝構造函數(shù)的調用可以省去 例: (Complex(3, 4)) – 直接調用構造函數(shù) Complex(float, float),在運行棧的傳參區(qū)域上建立對象 93 深 度 探 索 C++語言程序設計 清華大學 鄭莉 對象作為返回值的傳遞方式 ? 傳遞方式 – 在主調函數(shù)中創(chuàng)建臨時對象 – 主調函數(shù)把該對象地址(引用)傳遞給被調函數(shù) – 被調函數(shù)返回時,在該地址上執(zhí)行拷貝構造 94 深 度 探 索 Point fun2() { Point a(1, 2)。 return a。 } void fun2(_Point amp。result) { _Point a。 Point_Point(a, 1, 2)。 Point_Point(result, a)。 } b = fun2()。 _Point temp。 fun2(temp)。 b = temp。 C++語言程序設計 清華大學 鄭莉 對象作為返回值的傳遞方式 ? 有時返回時可以不調用拷貝構造函數(shù) 例: return Point(1, 2)。 –直接調用構造函數(shù) Point(int, int),生成返回的對象 ? 有時主調函數(shù)中可以不建立臨時對象 例: Point p = fun2()。 –先為 p申請空間,調用 fun2()前傳遞 p的地址,這樣在返回時可直接在 p的空間上構造返回對象 95 深 度 探 索 C++語言程序設計 清華大學 鄭莉 96 小結與復習建議 ? 主要內容 – 面向對象的基本概念、類和對象的聲明、構造函數(shù)、析構函數(shù)、內聯(lián)成員函數(shù)、拷貝構造函數(shù)、類的組合 ? 達到的目標 – 學會將一段功能相對獨立的程序寫成一個函數(shù),為下一章學習類和對象打好必要的基礎。 ? 實驗任務 – 實驗四
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1