中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
昆山市| 吴旗县| 忻城县| 沙河市| 政和县| 文昌市| 长乐市| 二连浩特市| 南召县| 文水县| 应城市| 昌平区| 泸定县| 营口市| 广安市| 湘西| 金溪县| 民勤县| 闽清县| 西和县| 辽宁省| 吉水县| 嘉祥县| 邵东县| 贵州省| 都江堰市| 平乡县| 金湖县| 凌源市| 颍上县| 鹰潭市| 珲春市| 海丰县| 都匀市| 宜春市| 容城县| 西林县| 漳州市| 无极县| 屯门区| 鄱阳县|