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

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

WBOY
Lepaskan: 2024-04-17 08:42:01
asal
612 orang telah melayarinya

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;
}
Salin selepas log masuk
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;
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan