首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 類與物件練習:雙精度浮點數最小值成員函數實作

     編輯:程式設計綜合問答

題目需求

定義類別,提供兩個 double 與三個 double 尋找最小值的成員函數,並撰寫測試程式。

完整程式碼

#include <iostream>
#include <algorithm> // std::min

class MinFinder {
public:
    // 兩個數最小值
    double min(double a, double b) const {
        return std::min(a, b);
    }

    // 三個數最小值
    double min(double a, double b, double c) const {
        return std::min(a, std::min(b, c));
    }
};

int main() {
    MinFinder finder;
    double a, b, c;

    std::cout << "輸入兩個數: ";
    std::cin >> a >> b;
    std::cout << "最小值: " << finder.min(a, b) << '\n';

    std::cout << "輸入三個數: ";
    std::cin >> a >> b >> c;
    std::cout << "最小值: " << finder.min(a, b, c) << '\n';

    return 0;
}

設計要點

  • 函數多載:同名 min 參數個數不同,編譯器依引數數量解析。
  • const 正確性:不修改物件狀態的成員函數標記 const。
  • 善用標準庫:std::min 簡潔且處理 NaN 等邊界情況。
  • 擴充性:若需 N 個數,可改用 std::initializer_list 或 vector。

進階:模板化支援任意型別

template <typename T>
T min(T a, T b) { return a < b ? a : b; }

template <typename T, typename... Args>
T min(T first, Args... args) {
    return min(first, min(args...)); // C++17 折疊運算式更簡潔
}

總結

利用函數多載實現兩個與三個參數的最小值查找,配合 const 與標準庫 std::min,程式碼簡潔、型別安全且易擴充。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved