问一个C++友元函数的问题!请高手帮忙指点!!

来源:百度知道 编辑:UC知道 时间:2024/09/21 01:43:24
代码如下:

#include<iostream>
using namespace std;

class A
{
private:
int a;
public:
A(){a=0;}
friend void Use(int b) ;
};

void Use(int b)
{
a=b;
cout<<a;
}

int main()
{

Use(10);
return 0;
}

该程序总是报错:error C2065: 'a' : undeclared identifier
不清楚友元的机制
请各位高手指点一哈!
万分感谢!!!!!!!!!

void Use(int b)
{
a=b; //此处a未定义类型。
cout<<a;
}
友元指的是可以调用类的private,...等成员。所以要定义成如下:
void Use(int b , A &obj)
{
obj.a=b;
cout<<obj.a;
}

//类只有声明了对象才能操作
#include<iostream>
using namespace std;

class A
{
private:
int a;
public:
A(){a=0;}
friend void Use(int b , A &obj) ;
};

void Use(int b , A &obj)
{
obj.a=b;
cout<<obj.a;
}

int main()
{
A obj;
Use(10 , obj);
return 0;
}