首頁  >  文章  >  後端開發  >  C++ 靜態函式與友元函式有什麼不同?

C++ 靜態函式與友元函式有什麼不同?

WBOY
WBOY原創
2024-04-17 08:42:01595瀏覽

靜態函數是類別方法,只存取靜態成員而不接收 this 指標;友元函數不屬於類,可以存取所有成員並接收 this 指標。

C++ 静态函数与友元函数有什么区别?

C 中靜態函數與友元函數的差異

#靜態函數

  • 屬於類別但不屬於任何特定的對象,也可以稱為類別方法。
  • 使用 static 關鍵字宣告。
  • 只可以存取類別的靜態成員。
  • 不會接收 this 指標。

友元函數

  • 不屬於任何類別。
  • 使用 friend 關鍵字宣告。
  • 可以存取類別的所有成員,包括私有成員。
  • 可以接收 this 指標。

表格總結

## 靜態函數友元函數static
#特徵
#類別成員資格 不是
存取權限 類別靜態成員 #類別所有成員
this 指標 不接收可以接收 宣告方式
關鍵字

#friend

關鍵字

實戰案例

######靜態函數範例:### 計算圓的面積###
class Circle {
public:
    static double calculateArea(double radius) {
        return 3.14 * radius * radius;
    }
};

int main() {
    double radius = 5.0;
    double area = Circle::calculateArea(radius);
    cout << "圆的面积:" << area << endl;
    return 0;
}
######友元函數範例:### 列印私有成員的值###
class Student {
private:
    int age;

public:
    friend void printAge(Student& student);
};

void printAge(Student& student) {
    cout << "年龄:" << student.age << endl;
}

int main() {
    Student student;
    student.age = 20;
    printAge(student);
    return 0;
}

以上是C++ 靜態函式與友元函式有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn