Bagaimana untuk menentukan sama ada fungsi adalah fungsi rakan?

PHPz
Lepaskan: 2024-04-15 15:09:01
asal
459 orang telah melayarinya

Cara untuk menentukan sama ada fungsi ialah fungsi rakan: Gunakan kata kunci rakan dalam pengisytiharan fungsi. Kelayakan nama kelas tidak diperlukan dalam pengisytiharan fungsi.

Bagaimana untuk menentukan sama ada fungsi adalah fungsi rakan?

Cara menentukan sama ada fungsi ialah fungsi rakan

Fungsi rakan bukan sebahagian daripada kelas, tetapi ia masih boleh mengakses ahli peribadi kelas tersebut. Fungsi rakan boleh ditentukan dengan cara berikut:

  1. Gunakan kata kunci friendfriend
class MyClass {
private:
    int data;
    friend void printData(const MyClass& obj);
};
Salin selepas log masuk

在上面的示例中,printData() 函数是一个友元函数,因为其声明中使用了关键字 friend

  1. 函数声明中不需要类名限定符

友元函数可以在类的外部声明,无需使用类名限定符:

class MyClass {
private:
    int data;
};

void printData(const MyClass& obj); // 友元函数声明
Salin selepas log masuk
  1. 实战案例

考虑以下示例,展示如何使用友元函数访问类的私有成员:

class MyClass {
private:
    int data = 10;
    
    friend std::ostream& operator<<(std::ostream& os, const MyClass& obj) {
        os << "data: " << obj.data;
        return os;
    }
};

int main() {
    MyClass obj;
    std::cout << obj << std::endl; // 输出:data: 10
    
    return 0;
}
Salin selepas log masuk

在这个示例中,operatorrrreee

dalam pengisytiharan fungsi Dalam contoh di atas, printData () Fungsi ini ialah fungsi kawan kerana kata kunci friend digunakan dalam pengisytiharannya. 🎜
    🎜🎜Tiada kelayakan nama kelas diperlukan dalam pengisytiharan fungsi🎜
🎜Fungsi rakan boleh diisytiharkan di luar kelas tanpa menggunakan kelayakan nama kelas: 🎜rrreee🎜🎜Kes Praktikal🎜🎜Pertimbangkan contoh berikut yang menunjukkan cara menggunakan fungsi rakan untuk mengakses ahli peribadi kelas: 🎜rrreee🎜Dalam contoh ini, operator ialah fungsi rakan yang digunakan untuk membebankan operator output untuk menyesuaikan cara maklumat kelas percetakan dicetak. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada fungsi adalah 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!