问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++类中set get函数有什麽作用,尤其是get函数

发布网友 发布时间:2022-05-02 04:21

我来回答

3个回答

热心网友 时间:2022-06-28 04:15

get/set成员函数(访问级别通常为public)使得client端用户代码可以访问对象的内部数据结构,这会暴露类内部的实现细节。这种暴露使会得用户代码与类实现之间产生深层次的依赖关系,而这种过剩的知识将在类实现技术改变时迅速破坏相关的用户代码---涟漪效果。

比如Container类输出了关于实现该类之二叉树的信息(比如,当它输出成员函数getLeftChild()与getRightChild()时),用户将*按照二叉树而不是容器进行思考,这将使用户代码变得复杂且难以改变。如果Container类改变了实现结构,则用户代码将*进行修改(可能是大量的)。

最少知识(least knowledge)原则是用于面向对象编码中降低类间耦合度的指导原则。该原则认为如果要在相互调用的类(对象)之间保持较低的耦合度,则一个对象所调用的方法应该仅仅局限于以下几个来源:
类对象本身;
被当作方法的参数而传递进来的对象;
此方法所创建或实例化的任何对象;
对象的任何组件;

一个对象可以任意调用以上四类对象的方法。唯一一类不可调用的方法来源于:通过某个对象的get成员函数所获取的间接对象的成员函数。很容易想象,当某个类拥有大量get/set成员函数时,该类本身几乎不可能提供完善的逻辑处理方法(否则也就没有必要提供这些get/set成员函数了),因此借助get成员函数获取间接对象并做进一步的处理几乎是不可避免的。

因此,在有可能的情况下,类设计人员应该尽量不提供get与set成员函数。
当然,不要认为get与set成员函数总是坏的,像CORBA这样的框架都会为所有的属性自动提供get/set成员函数。真正的问题是:好的对象总会封装并在接口后面隐藏某些东西,然而get/set成员函数有时会在暗中暴露对象的秘密。只有当在类外(从用户的角度)看待这些私有数据仍“有意义”时,为私有数据设置公有的get()和set()成员函数才是合理的。然而在许多情况下, get()/set()成员函数和公有数据一样差劲:它们仅仅隐藏了私有数据的名称,而没有隐藏私有数据本身。

热心网友 时间:2022-06-28 04:16

set是向一个类中的属性中赋值,get则是取出该类的某属性的值,return 返回的值并不是为了输出到操作平台上,而是进行其他处理或进行运算来用于其他目的

比如一类中i的属性值为3,那么我们可以用getI()这个方法取到3这个值,再用于其他运算:

int k=5*object.getI();

热心网友 时间:2022-06-28 04:16

两年前玩过一会c++
如果我没记错的话,set、get是访问私有变量的方法。
为了安全性,class中的属性一般设置为私有的private,但是为了给外界开放一个有限的可以访问私有变量的方法,就需要有setter,getter。setter、getter是标准的写法,也可以写成别的...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有谁知道拍一部微电影要多少钱? 微博群在哪? aj购买理由 遗嘱生效时需要执行吗 遗嘱有瑕疵但继承人都认可可以执行吗 红烧鸭的做法和配料配方 电脑删了无线网络怎么办笔记本电脑的WIFI被卸载了怎么办 天津房产限购需要多久 天津房产限购何时能解除? 天津限购嘛? 天津房屋限购政策 C#中的get set有什么作用? c#中的get set 是什么意思,我需要最详细的解释。 c#中类里面的get,set的作用。 梦见下面的牙齿松动隔一颗掉一颗掉了三颗 梦到某颗牙齿松动!!!求高人 高分 漫步者w800就插了一下有线耳机然后左边就不响了,右边响是什么情况? 漫步者w800bt为什么京东比淘宝山西 我是个女生,梦到猫了,那只猫是白色的,但是眼睛是蓝色的,淡淡的蓝色,占... 梦到猫是蓝色的,预示这什么 做梦梦到只黑猫?求解 梦到黑色黑色蓝眼睛猫追我是什么意思?求解 如何评价漫步者W800BT Plus? 周公解梦…梦见一只蓝眼黑猫 翰林学府周边环境怎么样?生活便利吗? 从济宁妇女活动中心到亿维坐几路车 沭阳到济宁医学院乘火车路线 从济宁汽车北站有通济宁纺织批发市场的工交车吗 济宁城投星城广场交通方便吗?应该怎么过去? 并且我将会记住英语 济宁高校生活园东门早上6点20多的公交车是几路 求各位说 好像就那一辆 java类中的get,set属性的作用 c#含struct的是结构,含class的是类,含get set的是属性。那么如何区分一句代码是方法还是函数? c# 类定义方法时用的get和set怎么回事 C# 中get{}set{}什么意思啊 C#类中如何使用getSet,如何对对象初始化 c#中的get和set的用法,希望结合代码解释! java属性类中如何定义一个集合,该集合包含属性类中的部分属性,get,set方法怎么写? C#类中如何使用get Set,如何对对象初始化 实体类get set方法怎么写 南京好吃休闲食品有哪些? 南京小吃有哪些 加不上附近的人是怎么回事 加不上附近的人是怎么回事? 魔兽争霸3守卫剑阁里面的南华仙人在哪? 魔兽守卫剑阁纵横天下的南华老仙在哪? 如何把csv的数据分割成多个excel数据? 神昏末劫御法天尊在哪 如何把csv的数据分割成多个excel中的数据 守卫剑阁无双乱舞3.5度厄天尊是无敌的怎么破 csv文件怎么分为两个excel表