本文目录一览

1,面向对象程序设计中友元的优势及其危害

它的优势就是它的危害,因为友元破坏了访问控制,使一个不在类中的成员可以访问类的私有属性。友元主要用在操作符的重载上面。

面向对象程序设计中友元的优势及其危害

2,C友元函数问题

Sample (long a )好啦,结果自己算吧!---我不知道你这个究竟是什么问题,因此草做答案。
友元函数就是允许另一个类或函数访问你的类的东西。 友元可以是函数或者是其他的类。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有者的同意)。

C友元函数问题

3,Java里有没有友元函数这回事

没有。Java的友元,替代就是package。这个package有两个作用,一个是包内共享,一个是防止命名冲突,实现了C++中friend和namespace的作用。
没有,Java 封装得更实在,尽量避免不必要的编程错误。想达到的目的可以用其它方式做到。
友元函数只存在C++中,java里没有friend,只能用public,protected,private,package来限制。

Java里有没有友元函数这回事

4,C中什么叫友元函数什么叫友元类请举例说明

友元: keyword : friendclass Afriend void print();}void print()}print函数就是友元函数来。该函数能够访问class A 的任何成员。class Bfriend class A.}A 就是B 到 友元类来。class A 可以访问 B 中任何成员。友元关系是不会被继承的。
友元函数的特点是能够访问类中的私有成员的非成员函数。友元类一个类可以作另一个类的友元。当一个类作为另一个类的友元时,这就意味着这个类的所有成员函数都是另一个类的友元函数。
友元函数的特点是能够访问类中的私有成员的非成员函数。友元类一个类可以作另一个类的友元。当一个类作为另一个类的友元时,这就意味着这个类的所有成员函数都是另一个类的友元函数。class Point     public:     Point(double xx, double yy)     void Getxy();     friend double Distance(Point &a, Point &b);   private:     double x, y;   };

5,什么是友元

友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有者的同意)。举个通俗的例子吧, 一个家庭,对一般的访客开发的是客厅,厨房等,但卧室这样的私人地方一般访客是禁止访问的,而好朋友 就可以进去了,
友元函数就是以friend开头的一种破坏类的封装性的一种用法友元类的私有和保护成员在类外不可以使用设计了一个后门,通过友元函数可以访问该对象的受限成员1。该函数放在类内类外声明均可2。需要通过类的对象访问如 friend void test(Base & b)通过b来访问成员多用于重载操作符,尽量不要用它提供操作受限数据的函数,那样受限就没有意义了
我们已知道类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。   为了解决上述问题,提出一种使用友元的方案。友元是一种定义在类外部的普通函数或类,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。

6,C中友元是什么它应该具体怎么用呢

对于一个对象中的私有\保护数据,只能通过它的成员函数来修改\调用: class myclassprivate: int a;public: void access(int x)};此时,access是myclass的成员函数。但如果我们想要一个函数,既能改变成员变量,又可以被程序其它部分调用,这时,我们就需要友元(friend)函数:class myclassprivate: int a;public: friend int access_friend (int x); void access (int x)};int access_friend(int x) return x * x;}
c++中,定义一个类中的成员分为私有成员、受保护成员和公有成员,我们知道,这些私有成员和受保护的成员是无法通过对象直接访问的,而是要通过调用公有成员函数从而间接的访问这些私有成员,那假如我的程序中出现循环要重复访问这个私有成员时,每次都要先通过调用公有成员间接的来访问该私有成员,这将造成空间和时间上的大大浪费。所以,我们就想怎么样能够使对象直接访问这些私有成员呢?那我们就引入了友元这个概念,假设定义了一个a类,又定义了一个b类,如果我们想使b中的某个函数f1可以直接访问a类中的私有成员,那我们就在该函数f1的前面加上friend。嘿嘿 废话比较多 只是想让你更加深入的了解友元。如果让我说优缺点的话(用我的话来说):(1)优点:可以使定义为友元函数或者友元类的函数直接访问另一个类中的私有成员和受保护成员,提高效率,方便编程。(2)缺点:破坏了类的封装性,提供了安全漏洞
就相当与一个能访问一个类的接口.很少有情况能用上友元的.

文章TAG:友元  面向对象程序设计中友元的优势及其危害  
下一篇