c++ - 我们应该在 C++ 类中指定 "private"标签吗?这有什么区别吗?

标签 c++ class

这可能不是最重要的问题,但由于 C++ 中的类在默认情况下所有属性和方法都是私有(private)的,指定它有什么意义吗?

这只是一个偏好问题吗?指定私有(private)部分会使代码看起来更熟练还是更不熟练?

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

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

};

对比

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

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

};

最佳答案

这完全取决于风格和偏好。

例如,在我的团队中,鉴于人们通常从上到下阅读,我们更喜欢先公开再公开,而且更多人会对如何使用感兴趣,而不是如何使用它实现(就像大多数人对驾驶汽车比学习内燃机的工作原理更感兴趣)。所以无论如何我们都被迫使用 private ,因为我们在底部列出了那些,除非我们使用默认访问是公共(public)的 struct (在这种情况下我们可以省略public 说明符,但我们通常不使用 structs 来节省输入,以指示简单的数据聚合)。

但这就是我们的工作方式。全取决于你。有些人可能会发现看到 private 说明符的明确性有助于避免必须假定 class 的默认访问权限的错误,例如这确实取决于您的团队动力、您想要强调的内容等。

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

关于c++ - 我们应该在 C++ 类中指定 "private"标签吗?这有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30603434/

相关文章:

c++ - 我可以使用 C++ 从 Protocol Buffer 序列化/反序列化 JSON 吗?

python - python 对象实例化失败

c++ - C++ 中的 this->data 和 (*this).data 有什么区别

jquery - 动态读取类名并配对/追加匹配的 div

python - 在Python中使用类来记录分数

c++ - 如何在类中的其他 vtable 指针中选择 vtable 指针?

c++ - 为什么这段代码使用不同的参数传递策略没有显着的性能差异?

c++ - 如何插入 LLVM 指令?

c++ - 关于在 C++ 中理解线程上的 "detach()"的问题

c++ - 引用微分函数