c++ - 如何使用公共(public)函数访问私有(private)变量?

标签 c++ function methods private public

<分区>

所以我不知道你们中的任何人是否去过/去过 NewBoston.Com(顺便说一下,这是很棒的资源),但我正在看这个视频,老师说你如何使用公共(public)访问私有(private)信息函数...

这是视频: http://www.youtube.com/watch?v=jTS7JTud1qQ

当然,只需跳到最后即可了解要点。

但我不明白的是,您如何使用公共(public)函数访问私有(private)信息。如果您创建一个公开的函数,允许任何人设置名称并获取该名称,那么它不就是公开的吗?难道任何人都无法弄乱我的代码和我想要的输出吗?

最佳答案

提供公共(public)方法来更改私有(private)变量的关键在于您可以添加额外的控件。

区别不大

class A {
   public:
      int age;
}

class B {
   private:
      int age;
   public:
      void setAge(int _age);
}

B::setAge(int _age) {
   this->age = _age;
}

但是,在第二种情况下,您可以添加拒绝某些数据(例如负值)或更新其他字段的逻辑。因此,您可以确保对象的数据保持一致。如果您采用第一种方法,则每次直接访问属性时都应复制该逻辑(注意:许多程序员会忘记这样做)。

关于c++ - 如何使用公共(public)函数访问私有(private)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551206/

相关文章:

c++ - 我的程序未发现struct中的功能

c++ - Boost::asio 套接字 - 如何干净地断开它们?

c++ - C++类中变量的多重定义

javascript - 更改窗口位置,然后等待窗口加载?

Java Jersey - 在同一个@path 上使用不同参数的相同方法?

java - 使用eclipse通过接口(interface)在方法中添加默认代码

c++ - 错误 C2143 : syntax error missing ')' before 'constant'

c++ - 我们如何确保传递的 2 个参数被视为第一个和第三个,而第二个和第四个被视为默认值

function - 我可以取消调用 Common Lisp 中的函数吗

javascript - 如何在 Javascript 中使用取反的 every() 或仅使用 some() 来检查每次迭代中是否缺少 key ?