友元函数应该注意的是:
(1)声明的时候应该在友元函数前面加上friend关键字
(2)应该将友元函数和友元类放在public前面,放在public中也可,但是感觉不应该放在public后,因为其仅仅是个友元,并不是类的成员,所以应该放在类声明的开始。
(3)对于有元函数定义的时候不能再加friend关键字
(4) 友元类的声明前面应加class关键字
友元类声明如下:
#include <iostream.h>
#include <stdlib.h>
class Pig
{
friend class Tiger;
public:
Pig();
int weight;
};
class Tiger
{
public:
void eat(Pig pig);
private:
int high;
};
Pig::Pig()
{
weight=100;
}
void Tiger::eat(Pig pig)
{
cout <<"eat a pig,pig's weight is"<<pig.weight<<endl;
}
int main()
{
Tiger tiger;
Pig pig;
tiger.eat(pig);
}