首页 > 厂商 > 知识 > 友元,面向对象程序设计中友元的优势及其危害

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

来源:整理 时间:2023-08-24 07:13:12 编辑:智能门户 手机版

本文目录一览

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:友元面向对象程序设计中友元的优势及其危害

最近更新

  • avi,AVI是什么avi,AVI是什么

    AVI是什么2,什么是AVI3,AVI是什么4,AVI格式是什么5,什么是AVI格式6,AVI的全称是什么1,AVI是什么是一种视频的文件格式。。对于格式方面来讲。2,什么是AVIAVI是一种视频格式。。。。现在还比较.....

    知识 日期:2023-08-24

  • 什么是linux,inux是什么什么是linux,inux是什么

    inux是什么2,什么是linux3,LINUX有什么用4,linux是什么5,linux是文字处理软件吗6,LINUX是什么操作系统这种系统的笔记本可以换成WINDOWS系统吗7,什么是linux系统8,Linux是怎样的操作系统1,inux.....

    知识 日期:2023-08-24

  • 1206封装尺寸,同是1206贴片电容与电阻它们的封装尺寸是一样的吗1206封装尺寸,同是1206贴片电容与电阻它们的封装尺寸是一样的吗

    同是1206贴片电容与电阻它们的封装尺寸是一样的吗2,电阻电容电感类的封装120608050402等具体是指多少乘3,请问LED灯里面说到的1206SMD中1206是什么意思谢谢4,贴片1N4007二极管的封装是M7.....

    知识 日期:2023-08-24

  • 机器人与李世石,战胜李世石的机器人叫什么机器人与李世石,战胜李世石的机器人叫什么

    阿尔法狗打败了李世石,让一部分人对情报机器人。和机器人阿尔法狗李世石一起去因为这个决赛也是大众熟知的,如何评价李世石?机器人它会取代人类吗?机器人真的会威胁人类生存吗?AlphaGo的胜.....

    知识 日期:2023-08-24

  • 导线连接方法,导线的连接方法有导线连接方法,导线的连接方法有

    导线的连接方法有2,导线除焊接还有哪几种连接方式3,电线有几种接法带图的4,导线连接方法有哪3种5,各种电线的接法6,导线的连接方法1,导线的连接方法有导线的连接方法有(绞合连接)(紧压连接)(焊接).....

    知识 日期:2023-08-24

  • 小米cc9,Redmi7和小米cc9那个更好小米cc9,Redmi7和小米cc9那个更好

    Redmi7和小米cc9那个更好2,小米cc9值得入手吗3,小米手机MlCC9多少米4,小米cc9听时间长了自动下调音量5,小米cc9可以使用电信4g吗6,小米CC9和荣耀十那个更好1,Redmi7和小米cc9那个更好Cc9是新.....

    知识 日期:2023-08-24

  • 低温超导,低温超导现象怎么回事低温超导,低温超导现象怎么回事

    低温超导现象怎么回事2,为什么有的导体在低温是可以超导有的绝缘体在高温时却可以得到导3,在绝对额零度下可以实现超导现象吗4,物理在超低温下所有物体都是超导体是么5,低温超导材料有哪些.....

    知识 日期:2023-08-24

  • 计算电流的公式,电流计算公式计算电流的公式,电流计算公式

    电流计算公式2,电流怎么算啊3,电流的计算公式4,电流计算法5,电流怎么算6,怎样算出电流能给我易懂的公式吗1,电流计算公式I=U/R2,电流怎么算啊U/R=IU=电压R=电阻I=电流3,电流的计算公式qI=——(q.....

    知识 日期:2023-08-24