您的位置:首页 > 编程语言 > C语言/C++

C++ 将成员变量声明为private

2018-03-21 09:28 337 查看
20180313 C++ 将成员变量声明为private
封装的重要性毋庸置疑,如果你对客户隐藏成员变量(也就是封装它们),你可以确保class的约束条件总是会获得维护,因为只有成员函数可以影响它们。更进一步地说,你保留了日后变更实现的权利,如果你不隐藏它们,你很快会发现即使拥有class原始码,改变任何public事物的能力还是极端受到约束,因为那会破坏太多客户码。public意味不封装,而几乎可以说,不封装意味不可改变,特别是对被广泛使用的classes而言。被广泛使用的classes是最需要封装的一个族群,因为他们最能够从“改变采用一个较佳实现版本”中获益。protected成员变量的论点十分类似。实际上它和public成员变量的论点相同。

假设我们有一个public成员变量,而我们最终取消了它。多少代码可能会被破坏呢,是的所有使用它的客户码都会被破坏,而那时不可知的大量。因此public成员变量完全没有封装性,。假设我们有一个protected成员变量而我们最终取消了它,有多少代码被破坏,是的,所有使用它的derived classes都会被破坏,那往往也是个 不可知的大量。因此,protected成员变量就像public成员变量一样缺乏封装性,因为在这两种情况下,如果成员变量被改变,都会有不可预知的大量代码收到破坏,虽然这个结论有点违反直观,但经验丰富的程序库作者会告诉你,它是真的,一旦你将一个成员变量声明为public或protected而用户开始使用它,就很难改变那个成员变量所涉及的一切。太多代码需要重写、重新测试、重写编写文档、重新编译、。从封装的角度看,其实只有两种访问权限:private(提供封装)和其他(不提供封装)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: