Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah perbezaan antara fungsi statik C++ dan fungsi rakan?

Apakah perbezaan antara fungsi statik C++ dan fungsi rakan?

WBOY
WBOYasal
2024-04-17 08:42:01595semak imbas

Fungsi statik ialah kaedah kelas yang hanya mengakses ahli statik dan tidak menerima penunjuk ini, fungsi rakan tidak tergolong dalam kelas dan boleh mengakses semua ahli dan menerima penunjuk ini.

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

Perbezaan antara fungsi statik dan fungsi rakan dalam C++

Fungsi statik

  • tergolong dalam kelas tetapi bukan milik mana-mana objek tertentu, dan boleh juga dipanggil kelas.
  • Diisytiharkan menggunakan kata kunci statik.
  • Hanya ahli statik kelas boleh diakses.
  • tidak akan menerima penunjuk ini.

Fungsi kawan

  • tidak tergolong dalam mana-mana kelas.
  • Gunakan pengisytiharan kata kunci rakan.
  • Ada akses kepada semua ahli kelas, termasuk ahli persendirian.
  • boleh terima ini penunjuk.

Ringkasan jadual

keahlianAkses ​​penunjuk ini kaedah pengisytiharanKes pertempuran sebenar
Ciri-ciri Fungsi statik Fungsi kawan
Ya Tidak
Kelas statik ahli Semua ahli kelas
tidak menerima boleh menerima
kata kunci statik

Contoh fungsi statik:

Kira luas bulatan

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;
}
Contoh fungsi rakan:

Cetak nilai ahli persendirian

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;
}

Atas ialah kandungan terperinci Apakah perbezaan antara fungsi statik C++ dan fungsi rakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn