cpp learning

可见性,也成为视图。每个人都有隐私,不想给外人知道,每个人都有长处,想让大家了解,那么在 C++ 是如何控制这些东西的,需要三个关键词

  1. private

    类里面的变量和方法默认都是私有的。也就是说,除了自己和 friend,其他类或者函数都不能访问,包括子类。

  2. protected

    类自己和自己的子类可以访问。

  3. public

    大家都可以访问。

  4. friend

    友元关系是单向的,并且不能被继承,也就是是,别人是你的朋友,你会给他看你的隐私,但别人不一定当你是朋友。友元函数并不是类的成员函数。

    • 运算符重载经常使用 friend。
    • friend 写在类声明中,一旦类实现完成,则不能再添加 friend。
    • friend的授权在编译期。

注意事项

privateprotected 限制编译时刻检查,而不是运行检查。编译成二进制后,则不再受到此限制。

继承基类, 在基类前省略 public 时, 默认是 protected 属性。

C++ 中,类里面的变量和函数默认是私有的,这和结构体相反。而结构体一般在数据量较小的时候使用。

并不是说一定要数据私有化,任何事都不是绝对的,权限设置的作用其实就是想给看代码的人提个醒,告诉他们类里面数据和函数哪些可以动,哪些不可以动。这是让代码有层次化的做法,编译到机器语言后没有任何意义。