友元函数为何不能访问类的成员?
用GCC编译,提示volume是私有的,不能访问。我另外重写了一个却可以编译通过,在这里,我的友元函数访问类的私有变量出现了什么问题?#include<iostream>
using namespace std;
class triangle
{
private:
float length,width,height,volume;
public:
triangle()
{
length = 1.2;
width = 2.3;
height = 5.9;
volume = 0;
}
void calc_volume();
friend void ::duplicata(triangle &);
};
void triangle::calc_volume()
{
volume = length * width * height;
}
float duplicate(triangle &c)
{
float dup_value;
dup_value = 2 * c.volume;
cout<<dup_value<<endl;
}
int main()
{
triangle t1;
t1.calc_volume();
duplicate(t1);
return 0;
}
[ 本帖最后由 ALwaysZETA 于 2013-9-22 21:32 编辑 ]