توابع دوست (friend function) همان طور که از اسمشان پیداست توابعی هستند که عضو کلاس نیستند اما به اعضای خصوصی کلاس دسترسی دارند. برای ایجاد یک تابع دوست در کلاس پروتوتایپ تابع را در بخش عمومی کلاس قرار داده و قبل از آن کلمه friend استفاده کنید.
مثال. دربرنامه زیر پیغام سه بار نمایش داده می شود. تابع set یک تابع دوست است که برای مقداردهی متغیر خصوصی عضو کلاس استفاده شده است.
#include <iostream>
class myclass {
int number;
public:
void greeting();
friend void set(myclass, int);
};
void myclass::greeting(){
for(int i = 0; i<= number;i++)
cout << “Hello World n”;
}
void set(myclass n, int value){
n.number=value;
}
int main () {
myclass myobject;
set(myobject, 3);
myobject.greeting();
return 0;
}