我们应该在 C++ 类中指定“私有”标签吗?它有什么区别吗?

Mat*_*tSt 5 c++ class

这可能不是最大的问题,但由于 c++ 中的类默认情况下具有所有属性和方法,是否指定它有任何意义?

这只是喜好问题吗?指定私有部分会使代码看起来更精通还是更精通?

class User
{   
        string name;
        string surname;
        int miles;
        double balance; 

    public:
        User(string,string,int,double);

};
Run Code Online (Sandbox Code Playgroud)

对比

class User
 {    
     private:
        string name;
        string surname;
        int miles;
        double balance; 

    public:
        User(string,string,int,double);

};
Run Code Online (Sandbox Code Playgroud)

小智 6

这都是风格和偏好问题。

例如,在我的团队中,考虑到人们通常从上到下阅读,我们更喜欢公开而不是私人,而且更多的人会对类的使用方式而不是其实现方式感兴趣(就像大多数人对驱动程序感兴趣一样)汽车不仅仅是学习内燃机的工作原理)。就这样,我们被迫使用private反正因为我们列出那些在底部,除非我们使用了struct其中的默认访问是公开的(在这种情况下,我们可以省略public符,但我们通常不使用structs,以节省打字这么多表示简单的数据聚合)。

但这就是我们滚动的方式。这一切都取决于你。有些人可能会发现看到private说明符的明确性有助于避免在必须假设 a 的默认访问权限时出错class,例如,它确实因您的团队动态、您想要强调的内容等而异。

我认为风格偏好的唯一不那么主观的方面是,如果有一种风格更好,它只是你的团队一贯遵循的任何风格。如果最终要通过风格标准实现任何目标,那就是:一致性。如果您要向世界其他地方发布标头(例如:作为软件开发工具包的一部分),则尤其如此。在那里,您不希望每个标题看起来都是由完全独立的人按照不同的标准编写的。因此,如果您的团队很难始终如一地遵循它,那么有时可能值得避免使用带有许多特殊规则和例外的非常“奇特”的标准,无论它多么酷。或者他们可能不会。这一切都取决于。