C++的friend关键字是怎么个用法?给个简单例子?
4个回答
2013-06-10
展开全部
friend关键字就相当于曝露信息给用friend的函数或者类,比如原本在一个类中私有的属性,但是我想让某个类或者某个函数访问那么这时候可以用友元这个概念,举个例子:class myfriend;class ic{private:int weight;int age;public:ic();~ic();friend class myfriend;friend ostream & operator << (ostream &out, const ic &a);};ostream & operator << (ostream &out, const ic &a){out<<a.age<<' '<<a.weight;}原本我的私有成员age和weight是不能被外部直接访问的,然而我用了friend后class myfriend中的成员函数就可以像ic中的成员函数一样访问ic中的私有属性和成员了。同样,下面的运算符重载函数我并没有标明这是ic的成员函数(见定义),用了friend关键字后这个函数一样能象成员函数一样访问ic中的私有属性,其中out<<a.age<<' '<<a.weight;这句中a.age和a.weight就是直接访问。
2013-06-10
展开全部
类中的私有成员允许自己的成员函数public的就是接口访问。另外一种访问方式就是友元。 给你个例子看看吧。~class A{ private: int a; public: A(); //构造函数 ~A(); //析构函数 friend void tese(); //友元 只要声明此。 这样void tese();这个函数也能访问类得私有成员} /////函数体void test(){ a = 0; //可以进行修改。取值什么的操作~~~访问权限有的。}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-10
展开全部
友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有者的同意)定义格式(c++): friend <返回类型> <函数名> (<参数列表>);分清成员函数,非成员函数和友元函数 成员函数和非成员函数最大的区别在于成员函数可以是虚拟的而非成员函数不行。所以,如果有个函数必须进行动态绑定(见条款38),就要采用虚拟函数,而虚拟函数必定是某个类的成员函数。关于这一点就这么简单。如果函数不必是虚拟的,情况就稍微复杂一点。 (条款38: 决不要重新定义继承而来的缺省参数值)举例 看下面表示有理数的一个类: class rational { public: rational(int numerator = 0, int denominator = 1); int numerator() const; int denominator() const; private: ... };
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-10
展开全部
朋友,假如我是你朋友,我自然知道很多你的属性。因此,只要你在内部public定义友元函数,就代表你认同我是你朋友,我可以问你的属性。在外部,我可以访问你的private。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询