+ -
当前位置:首页 → 问答吧 → 友元函数

友元函数

时间:2011-11-29

来源:互联网

友元函数不能访问数据成员
友元函数可以像成员函数一样访问类中的所有成员
这两句话矛盾吗

作者: tingfengx   发布时间: 2011-11-29

友元函数不能访问数据成员//能。
友元函数可以像成员函数一样访问类中的所有成员//能
这两句话矛盾吗//有,一对一错当然有矛盾

作者: mingliang1212   发布时间: 2011-11-29

友元函数可以访问成员函数

作者: hnuqinhuan   发布时间: 2011-11-29

C/C++ code
class A
{
public:
    A() {mm=10;}
    friend void fff(A* a);
protected:
    int mm;
};

void fff(A* a)
{
    cout<<mm;    //友元函数不能访问数据成员
    cout<<a->mm;//友元函数可以像成员函数一样访问类中的所有成员
}

作者: hoya5121   发布时间: 2011-11-29

不是,我少打了两个字,第一句话是友元函数不能直接访问数据成员

作者: tingfengx   发布时间: 2011-11-29

引用 4 楼 tingfengx 的回复:
不是,我少打了两个字,第一句话是友元函数不能直接访问数据成员


哦,你记住友元没有this指针就行了。友元不属于该类。只是授权给他访问权限的。

一般成员函数都是通过this指针来访问其他非静态成员的,this->m_data只是我们有时省略写成:m_data.

作者: mingliang1212   发布时间: 2011-11-29

哦明白了

作者: tingfengx   发布时间: 2011-11-29