这是一个很普通的 C++ 类 Person,他有两个属性 name 和 age。我们试想一下,这个类要怎么去使用呢?如果你不想给我源代码,那么至少也要给我一个 dll 或者其他类似的东西,并且你要把这个头文件给我,这样我才能把它 include 到我的代码中使用。我只能使用你暴露给我的 public 的接口。按理说,private 的东西我是不应该知道的,但是现在我知道了!为什么呢?因为我会去读这个头文件,我知道了,原来在 Person 中,age 就是一个 int,name 就是一个 string。这是你不希望看到的,因为既然你把它声明成了 private 的,就是不想让我知道这些东西。那么怎么办呢?嗯,我有一个解决方案。来看下面的代码: