
发表日期: 2021-04-25 12:40:38 浏览次数:100
宿迁网站推广【宿迁办理400电话】宿迁SEO优化、宿迁微信公众号APP客户端小程序开发、宿迁网站托管、宿迁APP开发
宿迁,简称宿,别称水城,古称下相、宿豫、钟吾等,江苏省地级市,宿迁位于长三角北翼,江苏省北部,是长三角北翼区域性综合交通枢纽, [1] 地处徐州、连云港、淮安中心地带。宿迁是江苏省沿海地区向中西部辐射的重要门户城市 [2] ,是徐州都市圈、江淮生态经济区核心城市 [3] 、一带一路节点城市 [4] 。截至2020年6月,宿迁下辖2区3县 [5] ,总面积8555平方千米。截至2019年末,宿迁户籍人口592.36万 [6] 。
宿迁是西楚霸王项羽的故乡,有着5000多年的文明史和2700多年的建城史,曾是泗水国、钟吾国、宿国都城,历史悠久,人文荟萃,素有“华夏文明之脉、江苏文明之根、淮河文明之源、楚汉文化之魂”之称 [7] 。宿迁是酒文化的发源地之一,有中国白酒之都称号 [8] ,洋河、双沟两大名酒出产于此。宿迁是典型的苏北水乡,坐拥骆马湖、洪泽湖两大淡水湖,大运河、古黄河、淮沭新河等众多河流镶嵌其间。乾隆皇帝六下江南五次驻跸于此,赞叹宿迁为“第一江山春好处” [9] 。
宿迁是首批12个社会信用体系建设示范城市 [10] ,是中国优秀旅游城市 [11] 、国家园林城市 [12] 、国家卫生城市 [13] 、全国文明城市 [8] 。2020年10月,宿迁被评为全国双拥模范城(县) [14] 。
一般来说,声明包含在.h文件中,相关的定义包含在.cpp文件中。当然,也可以在.h文件中声明方法的位置给出方法的定义。例如:
class MyClass{public:
void MyMethod()
{
printf("In MyMethod() of MyClass.\n");
}};复制代码该技巧隐式地要求编译器在任何调用MyMethod()的地方内联此成员函数。从API设计的角度来看,因为它不仅暴露了此方法的实现代码,而且将代码直接内联到客户程序中,所以这是很拙劣的做法。因此,应该尽量做到,在API的头部只提供声明。不过,为了支持模板和有意的内联,这个规则也会有例外。
提示 物理隐藏表示将内部细节(.cpp)与公有接口(.h)分离,存储在不同的文件中。
注意,如样例代码所示,有时我会内联函数的实现,但这么做纯粹是为了清晰和简洁,在实际的API开发中应该避免采用这种方式。
封装(面向对象中的一个概念)提供了限制访问对象成员的机制。在C++中,此机制通过对类和结构体(类和结构体在功能上是等价的,仅在默认访问级别上有所不同)使用以下访问控制关键字来实现。图3-3举例说明了这些访问级别。

图3-3 C++类的三种访问级别
public(公有的):能从类或结构体的外部访问这些成员。这是结构体的默认访问级别。
protected(受保护的):只能在该类或该类的派生类中访问这些成员。
private(私有的):只能在定义这些成员的类中访问它们。这是类的默认访问级别。
其他语言下的封装
C++为类成员提供了public、protected以及private访问控制,然而其他面向对象语言提供了不同粒度的级别。例如,在Smalltalk中,所有的实例变量都是私有的,而所有方法都是公有的。而Java语言则提供了public、private、protected以及包私有(package-private)访问级别。
Java中的包私有表示该成员只能被同一个包中的类访问,这是Java中的默认访问级别。若要让同一个JAR文件中的其他类访问该类的内部成员,而又不必将该类的内部成员暴露给客户,那么使用包私有是很好的做法。包私有在需要验证私有方法的单元测试中十分有用。
C++没有包私有的概念,而是使用更加宽泛的友元概念,以允许指定的类和方法访问某个类的受保护的或私有的成员。虽然友元可以用来加强封装,但是如果使用不当,它也会向用户过度暴露内部细节。
用户很可能不遵循公有API的约束。如果向用户提供内部成员的钩子(hook),并且用户可以通过这些钩子得到所需资源,那么他们就会利用这些钩子完成工作。这样做虽然看起来对用户有利,帮助他们快速找到问题的解决方案,但是这也使得将来修改这些实现细节变得更加困难,同时扼杀了
改进和优化产品的能力。
提示 封装是将API的公有接口与其底层实现分离的过程。
让我们看看一些用户滥用钩子的示例。多人第一人称射击游戏《反恐精英》(Counter-Strike)自2000年左右问世以来,经常成为外挂目标。最著名的外挂之一就是“wallhack”。从本质上来讲,它是一个修改过的OpenGL驱动,它将墙壁部分或完全地渲染为透明。这就使得用外挂的玩家占据了明显的优势,因为他们可以看到墙后的东西。虽然你现在可能不会编写游戏或将玩家作为你的目标用户,但是该准则说明用户会尽一切可能获得他们想要的东西。如果一些用户可以通过修改OpenGL图形驱动在游戏中获得优势,那么由此推断,也一定会有用户使用API暴露出来的内部细节实现老板交代的功能。
下面用一个更加直接的应用程序说明这一点。Roland Faber报告了在西门子公司内部出现的一些困难,原因是它们的一个团队决定使用另一个团队开发的API的内部细节(Feber, 2010)。

服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878