免費開始練習
地特三等申論題 111年 [資訊處理] 程式設計

第 三 題

三、有關 C++程式設計,回答以下問題: 建立一個 Rect 類別,其 Rect.h 定義如下: class Rect { public: explicit Rect(double = 1.0, double = 1.0); void setWidth(double w); void setLength(double l); double getWidth() const; double getLength() const; double perimeter() const; double area() const; private: double length; double width; }; 其屬性有 length 和 width,每個屬性內定為 1.0。提供計算矩形周長 (perimeter)和面積(area)的成員函數。另外,提供寬度屬性的設定 (setWidth)和獲取(getWidth)函數,也提供長度屬性的設定(setLength) 和獲取(getLength)函數。設定函數要檢查長度和寬度均為大於 0.0 且 小於 20.0 的浮點數。以下為測試 Rect 類別的主程式: #include #include #include #include "Rect.h" using namespace std; nt main(){ Rect x, y(3.0, 4.0); cout << fixed; cout << setprecision(1); cout << "x: length = " << x.getLength() << "; width = " << x.getWidth() << "; perimeter = " << x.perimeter() << "; area = " << x.area() << '\n'; cout << "y: length = " << y.getLength() << "; width = " << y.getWidth() << "; perimeter = " << y.perimeter() << "; area = " << y.area() << '\n'; } 執行結果如下: x: length = 1.0; width = 1.0; perimeter = 4.0; area = 1.0 y: length = 4.0; width = 3.0; perimeter = 14.0; area = 12.0 寫出 Rect.h 中的 Rect( ),setWidth( ),setLength( ),getWidth( ),getLength( ), perimeter( ),area( )等 C++函數,來完成上述主程式和執行結果的功能。 (25 分)
📝 此題為申論題

思路引導 VIP

解題核心在於 C++ 類別成員函數的實作與資料封裝原則。考生應思考:(1) 使用作用域解析運算子 :: 來實作類別外部函數;(2) Setter 內需實作 >0.0<20.0 的邏輯檢查,搭配拋出例外防呆;(3) 建構子應直接呼叫 Setter,確保初始值亦受邊界條件保護,避免出現漏洞。

🤖
AI 詳解 AI 專屬家教

【解題關鍵】C++ 物件導向封裝性實作與資料防護(使用 :: 實作類別外定義,並於 Setter 中進行條件檢查)。 【解答】 選用程式語言:C++

▼ 還有更多解析內容

📝 同份考卷的其他題目

查看 111年[資訊處理] 程式設計 全題

升級 VIP 解鎖