定義類別,提供兩個 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。std::min 簡潔且處理 NaN 等邊界情況。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,程式碼簡潔、型別安全且易擴充。