溫馨提示×

C++類型轉換運算符如何重載

c++
小樊
88
2024-11-09 05:42:32
欄目: 編程語言

在C++中,你可以通過在類中定義一個名為operator的成員函數來重載類型轉換運算符

#include <iostream>

class Fraction {
public:
    Fraction(int numerator = 0, int denominator = 1)
        : numerator_(numerator), denominator_(denominator) {}

    // 重載類型轉換運算符為int
    operator int() const {
        return numerator_ / static_cast<double>(denominator_);
    }

private:
    int numerator_;
    int denominator_;
};

int main() {
    Fraction frac(4, 2);
    int result = static_cast<int>(frac); // 使用重載的類型轉換運算符
    std::cout << "The result is: " << result << std::endl; // 輸出:The result is: 2
    return 0;
}

在這個例子中,我們定義了一個名為Fraction的類,它表示一個分數。我們重載了類型轉換運算符operator int(),使得Fraction對象可以隱式轉換為int類型。在轉換過程中,我們將分子除以分母得到一個浮點數,然后將浮點數轉換為整數。

注意,當重載類型轉換運算符時,最好將其聲明為const成員函數,因為它不會修改對象的狀態。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女