您好、欢迎来到现金彩票网!
当前位置:热购彩票app下载 > 公有成员 >

C++ 类的各种公开、私有、保护成员定义的实际意义?

发布时间:2019-08-29 03:15 来源:未知 编辑:admin

  很无知的想到:如果提供源文件,无论私有公共都能看见,并可以修改;如果只提供头文件,头文件中只给出可以访问的函数或数据,无论私有公共都改不了。程序行为人设计的,如果不是防人,程序自己该不会很随便吧?编译时到底有什么区别?是为了编程序的人还是编译器?定义一个私有数据,然后用一个公共的函数return到底有什么实际价值?

  看来我不太懂继承,是我写的类,生成库,我只在头文件和说明中告诉你可以继承使用的函数,其余的公有函数我不说,和私有函数有没有区别?展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  类的各种公开、私有、保护是用来区分实现与接口部分(比较低层次的)。类的公有成员定义了类的功能(接口),这些接口定义了这个类能做什么,不能做什么,这个类因为这个接口而存在。而类的私有成员和保护成员定义了类的实现部分,这些实现部分可能因为性能、可靠性而经常改动。 通过在编程语言中区分出接口和实现,可以让程序员以最小的代价去修改代码,可以让用户在阅读我们的代码时知道应该关注那些东西而不应该关注那些东西,同时也让编译器能检查出用户代码非法使用类实现代码的情况。

  C++的继承、静态多态(模板)和动态多态(virtual函数)则把接口与分离的原则发挥到了极致。

  没什么区别,public、private、protected限制的是名字使用而已,也就是说你也可以在代码中通过指针访问私有保护成员,但是如我前面说的:这些东西都是为了避免犯错,而不是避免蓄意的阴谋。

  你说的那个隐藏细节的那个问题,有一些技术可以做到的,比如说使用句柄类技术,可以在类的声明中只保留一个成员指针,而所有的细节都隐藏在这个指针的后面。

  如果将来某一天你决定将这个变量换成其他的,那你就只需要修改那个return这个变量的函数就可以了。还有这种做法有助于排错的。

  2013-03-23展开全部封装啊少年...这些东西吧,做过实际项目就懂了。

  私有啊,就是派生类里不能访问,外界也不能访问,只能是类内部调用啊。这样使用类起来就很简单啊,主要是处于项目维护的需要。经常性的,我做c++开发的时候,经常写一个基础类,里面有20-50多个成员函数,有一些类给是外面程序里使用的函数,我们给它做成public的,这样其他开发人员要使用我写的类,就直接看那些public的函数就行了,至于那些private的,直接不用看。你没写过几行代码。正在你做个小型项目,5K行-8K行代码的,你就体会到了。还有就是,private的其他意义在于,如果你继承了一个之前写的类,如果那个类里面所有函数都是public,然后你随意调用了里面的方法,然后呢,你发现一个函数需要改,然后你不得不去改所有调用了那个函数的代码,因为你所有函数都是public,派生类可以随意调用,这样基类和派生类直接的耦合性就太强了,这还算简单的,很多时候一个基类都派生出4-5个类,一个类代码量经常有个4K-5K多行的样子,这样该一个函数,所有的函数都要该,是个人都会崩溃的。所有,public和private还有protected实质还是类设计思想的规划。

  至于你说的return,那个是叫做标准,也可以说是规范,没啥实际意义。要说实际意义嘛,你也可以不用C++,用纯C去写也没人管你,一个main函数写个几万行代码也行,这都随意。但是规范就说不要这样写,因为你写的太少了,不能体会到这样做的坏处,体会到了这样的坏处,就理解了规范的意义的。

  展开全部将一些操作写成函数形式是为了提供公共操作,可以简化代码,让程序步骤更清晰。

  要访问一个私有数据成员,你当然可以把那个成员改成公有的,然后直接访问。但是如果这个类被继承的话,那就会出现问题了,因为这个被改成公有的数据成员也会被继承,这有时候会造成访问冲突,用私有来进行访问控制就可以解决这个问题。

  有时候用函数的形式来访问数据,是一种习惯,这在编写复杂的程序的时候很有用。比如在你需要改程序的时候,你仅仅需要改这个函数的实现,而不用改函数名。

  但是,如果税率一开始你是用ele直接访问表示的。那么你就需要改动 所以需要用到ele的地方。这对一个复杂的程序来说,是很难的,而且非常容易出错。

  知道合伙人数码行家采纳数:33539获赞数:64824学的虽是计算机网络,但是读的书很多也很杂也是一知半解,所以到现在我也不知道我有啥能力!只知道努力!向TA提问展开全部C++的公有成员、私有成员、保护成员都属于语法范畴,它的作用主要是为了实现C++的面向对象与继承特性。

  1、公有成员是接口,打个比方来说,以计算机为例,对于不懂计算机的人来说,不需要告诉对方内部CPU如何动作、内存如何管理,只需要告诉它电源开关在哪里即可,这个电源开关就相当于公开成员,它是一个操作界面。C++面向对象程序设计的一个关键点即是接口编程。拿Windows来说,亦是如此,普通用户通过GUI接口即explorer.exe来完成操作,系统管理员通过控制台接口即cmd命令提示符来操作,程序员通过SDK中的API函数来完成操作。

  2、私有成员 ,这只是变换了一个名称,程序=数据结构+算法,算法是用来操作数据的,一个程序不可能是没有数据的,私有成员即是用户通过接口操作的对象。因此,一般私有成员都是数据成员,偶尔会有一些私有的成员函数,即不想开放给用户的接口。

  3、保护成员,C++一个很重要的特性是实现继承,也叫做派生,派生一词最早出现于亚理士多德的《工具论》,中国古代的诸子百家中有一家叫做名家,著名的白马非马的故事就是出自于此,派生的概念类似于马和白马的关系。用数学集合的观点来看,马是一个集合,白马是马的子集,派生实际上实现的就是这种子集关系,子类要继承基类的数据成员,就牵涉到一个数据共享的问题,因为继承的时候,基类的私有成员在派生类中依然是基类的私有成员,否则,私有成员就没有任何意义,基类的公有成员在派生类中依然是公有的,因此这里面有一个局限性,即如何让基类的成员,能成为派生类的私有成员,这样能够更好的实现基类的可扩展性,因此才引入了保护成员的概念。

  展开全部私有和公有不是说这个代码是否开源,而是指这个函数或变量在其他模块中是否通用。

  例如我定义了一个私有函数,那么仅在此模块中可以调用这个函数,在别的模块中调用此函数会报错。

http://e-ndicus.com/gongyouchengyuan/1204.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有