在我看来,编写访问器和mutator方法是一个很大的麻烦,特别是在处理非常简单的属性时。我为什么要打扰使用它们?
答案 0 :(得分:3)
答案主要取决于你编写代码的内容以及单独工作时你对自己的信任程度:
friend
指令而不需要设置setter和getter(即使它鼓励耦合,所以这里有两种不同的思维流派) 答案 1 :(得分:2)
我不能说C ++的语法负担,但在一般的面向对象术语中,你应该提供getter和setter,因为其他类没有业务知道如何存储你的内部状态,包括直接存储哪些属性,这是基于计算的在其他状态,并进一步下放到其他对象。与更广泛的世界签订关于课程如何存储状态的合同公告将限制您将来可以进行的调整,通常会抑制优化并破坏您的代码,因为您正在解决的问题变得更加微妙。
答案 2 :(得分:1)