当前位置:  开发笔记 > 编程语言 > 正文

我该如何订购C++类的成员?

如何解决《我该如何订购C++类的成员?》经验,为你挑选了4个好方法。

拥有所有私人成员,然后是所有受保护的成员,然后是所有公共成员?或者相反?或者是否应该有多个私有,受保护和公共标签,以便操作可以与构造函数分开等等?做出此决定时,我应该考虑哪些问题?



1> itsmatt..:

我把公共接口放在首位,但我并不总是这样做.我常常向后做这件事,私有,然后保护,然后公开.回想起来,它没有多大意义.

作为一个班级的开发者,你可能很熟悉它的"内脏",但是班级的用户并不在乎,或者至少他们不应该这么做.他们最感兴趣的是班级可以为他们做些什么,对吧?

所以我把公众放在第一位,并通常通过功能/实用程序来组织它.我不希望他们不得不通过我的界面来找到与X相关的所有方法,我希望他们能够以有条理的方式看到所有这些东西.

我从不使用多个公共/受保护/私人部分 - 在我看来太混乱了.


感谢评论,戴夫.如果我正在评估课程的效率或"如何",或者如果我担心它不正确,那么我会关心内部,但主要是作为班级的用户,我'我担心班级的行为,而不是内部如何管理事物.

2> Josh Kelley..:

Google赞成此订单:"Typedef和Enums,常量,构造函数,析构函数,方法,包括静态方法,数据成员,包括静态数据成员."

Matthew Wilson(需要Safari订阅)推荐以下顺序:"构造,操作,属性,迭代,状态,实现,成员和我最喜欢的,不实现."

它们提供了很好的理由,这种方法似乎是相当标准的,但无论你做什么,都要保持一致.



3> korona..:

这是我的观点,我猜赌大多数人会同意,公共方法应该先行.OO的核心原则之一是您不必关心实施.只要查看公共方法,就应该告诉您使用该类需要知道的一切.



4> MattyT..:

与往常一样,请首先人类编写代码。考虑将要使用您的班级的人,并将最重要的成员/枚举/ typedefs /任何对他们来说放在顶部。

通常,这意味着公众成员是最重要的,因为这是您班上大多数消费者最感兴趣的部分。其次是私有,然后是受保护的。通常。

有一些例外。

有时,初始化顺序很重要,有时需要在公众面前声明私有。有时,继承和扩展一个类更为重要,在这种情况下,受保护的成员可能会放在更高的位置。而且,当黑客对遗留代码进行单元测试时,有时公开公共方法会更容易-如果我不得不犯下这句话,我会将其放在类定义的底部。

但是它们是相对罕见的情况。

我发现大多数时候,“公共的,受保护的,私人的”对您所在类别的消费者最有用。这是一个不错的基本规则。

但这与按访问顺序排序无关,而更多地是根据消费者的兴趣进行排序

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有