91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++ class類運算符重載怎么做

c++
小樊
82
2024-09-24 23:41:16
欄目: 編程語言

在 C++ 中,你可以通過定義特殊的成員函數來重載類運算符。這些成員函數以關鍵字 operator 開頭,后面緊跟要重載的運算符,然后是括號,括號內可以包含參數列表(如果有的話)。下面是一些常見的運算符重載示例:

  1. 重載 + 運算符:
class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}

    MyClass operator+(const MyClass& other) const {
        return MyClass(value + other.value);
    }
};

int main() {
    MyClass a(1);
    MyClass b(2);
    MyClass c = a + b; // 使用重載的 + 運算符
    return 0;
}
  1. 重載 == 運算符:
class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}

    bool operator==(const MyClass& other) const {
        return value == other.value;
    }
};

int main() {
    MyClass a(1);
    MyClass b(1);
    MyClass c(2);

    if (a == b) {
        std::cout << "a and b are equal" << std::endl;
    } else {
        std::cout << "a and b are not equal" << std::endl;
    }

    if (a != c) {
        std::cout << "a and c are not equal" << std::endl;
    } else {
        std::cout << "a and c are equal" << std::endl;
    }

    return 0;
}
  1. 重載 << 運算符(用于輸出):
#include <iostream>

class MyClass {
public:
    int value;

    MyClass(int v) : value(v) {}

    friend std::ostream& operator<<(std::ostream& os, const MyClass& obj) {
        os << obj.value;
        return os;
    }
};

int main() {
    MyClass a(1);
    std::cout << "a: "<< a << std::endl; // 使用重載的 << 運算符
    return 0;
}

注意:當重載 << 運算符時,通常將其聲明為 friend 函數,以便能夠訪問類的私有和保護成員。

0
太和县| 海原县| 特克斯县| 安仁县| 吴川市| 金乡县| 新田县| 庆阳市| 安丘市| 香港| 长泰县| 堆龙德庆县| 张家川| 乃东县| 襄汾县| 保康县| 盱眙县| 扎囊县| 兴海县| 清镇市| 龙里县| 柯坪县| 昭平县| 宾阳县| 南召县| 定兴县| 炉霍县| 大英县| 常德市| 邯郸县| 静宁县| 莱州市| 滦南县| 清镇市| 阿拉善左旗| 竹北市| 彭泽县| 白玉县| 嘉义县| 玉田县| 大洼县|