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

溫馨提示×

C++友元類與運算符重載

c++
小樊
82
2024-11-08 22:34:25
欄目: 編程語言

在C++中,友元類和運算符重載是兩個不同的概念,但它們都可以用來實現類似的功能。讓我們分別了解它們。

  1. 友元類(Friend Class):

友元類是指一個類允許其他類或函數訪問其私有和保護成員。這可以通過在類定義中使用friend關鍵字來實現。友元類可以訪問類的所有成員,包括私有和保護成員。

示例:

#include <iostream>

class A {
private:
    int x;

public:
    A(int a) : x(a) {}

    // 聲明B為友元類
    friend class B;
};

class B {
public:
    void printX(const A& obj) {
        std::cout << "x = " << obj.x << std::endl;
    }
};

int main() {
    A objA(10);
    B objB;
    objB.printX(objA); // 輸出:x = 10
    return 0;
}
  1. 運算符重載(Operator Overloading):

運算符重載是指為已有的運算符賦予新的含義,使其適用于自定義的數據類型。在C++中,可以通過在類定義中使用運算符重載聲明來實現。運算符重載可以使得代碼更簡潔、易讀。

示例:

#include <iostream>

class Complex {
private:
    double real;
    double imag;

public:
    Complex(double r, double i) : real(r), imag(i) {}

    // 重載加法運算符
    Complex operator+(const Complex& other) const {
        return Complex(real + other.real, imag + other.imag);
    }
};

int main() {
    Complex c1(3, 4);
    Complex c2(1, 2);
    Complex c3 = c1 + c2; // 輸出:(4, 6)
    return 0;
}

總結:

  • 友元類允許其他類或函數訪問其私有和保護成員。
  • 運算符重載為已有的運算符賦予新的含義,使其適用于自定義的數據類型。
  • 兩者都可以用來實現類似的功能,但它們的目的和使用場景不同。

0
泉州市| 将乐县| 迭部县| 林周县| 东辽县| 平度市| 沧州市| 曲松县| 莱阳市| 格尔木市| 枣庄市| 彭阳县| 福建省| 灵台县| 昌图县| 巫山县| 吐鲁番市| 大连市| 鸡东县| 西华县| 志丹县| 徐水县| 泰来县| 阿巴嘎旗| 霍邱县| 鄂尔多斯市| 社旗县| 秭归县| 龙海市| 白山市| 黑水县| 新化县| 临西县| 新津县| 灌云县| 民乐县| 柳河县| 焦作市| 星座| 南陵县| 吴旗县|