Latest web development tutorials

Fungsi teman C ++

C ++ Kelas & Objek C ++ Kelas & Objek

Fungsi kelas teman didefinisikan luar kelas, tapi kelas memiliki akses ke semua anggota (swasta) pribadi dan perlindungan anggota (dilindungi). Meskipun prototipe teman fungsi didefinisikan di kelas muncul, tetapi fungsi teman bukan fungsi anggota.

Teman bisa menjadi fungsi yang disebut fungsi teman; teman juga bisa menjadi sebuah kelas yang disebut kelas teman, dalam hal ini, kelas secara keseluruhan dan semua anggotanya adalah teman.

Jika Anda ingin mendeklarasikan fungsi sebagai teman kelas, Anda perlu menggunakan kata kunci sebelumteman prototipe fungsi dalam definisi kelas, sebagai berikut:

class Box
{
   double width;
public:
   double length;
   friend void printWidth( Box box );
   void setWidth( double wid );
};

Semua anggota fungsi ClassTwo kelas deklarasi sebagai semacam ClassOne teman, harus ditempatkan dalam definisi kelas ClassOne pernyataan berikut:

friend class ClassTwo;

Perhatikan program berikut:

#include <iostream>
 
using namespace std;
 
class Box
{
   double width;
public:
   friend void printWidth( Box box );
   void setWidth( double wid );
};

// 成员函数定义
void Box::setWidth( double wid )
{
    width = wid;
}

// 请注意:printWidth() 不是任何类的成员函数
void printWidth( Box box )
{
   /* 因为 printWidth() 是 Box 的友元,它可以直接访问该类的任何成员 */
   cout << "Width of box : " << box.width <<endl;
}
 
// 程序的主函数
int main( )
{
   Box box;
 
   // 使用成员函数设置宽度
   box.setWidth(10.0);
   
   // 使用友元函数输出宽度
   printWidth( box );
 
   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

Width of box : 10

C ++ Kelas & Objek C ++ Kelas & Objek