//friend.cpp -- by tsaiwn@csie.nctu.edu.tw //friend id the only one who can touch your private #include using namespace std; // ? FRIEND function // ? OVERLOADed function (function name overloaded) class MySomething { int kk; public: float x,y; void talk(int); private: float z; friend void modifyme(int); friend void modifyme(float); }; void modifyme(int m){ MySomething you; you.kk = m*10; cout << "in First me\n"; // ... } void modifyme(int m,int n){ // not my friend MySomething you; //you.kk = m+n; // ERROR ! cout << "in Second me\n"; // ... } void modifyme(float m){ MySomething you; you.z = m; you.x = m; cout << "in Third me\n"; // ... } int main() { MySomething him; modifyme(10); modifyme(1,2); modifyme((float)10.0); //him.kk := 123; return 0; }