• 类在设计时,可以把属性和行为放在不同的权限下,加以控制

    访问权限有三种:

    1. public 公共权限, 类内可以访问,类外可以访问
    2. protected 保护权限,类内可以访问,类外不可以访问,儿子可以访问父亲中的保护内容
    3. private 私有权限,类内可以访问,类外不可以访问,儿子不可以访问父亲中的私有内容

struct和class区别

  • 在C++中struct和class唯一的区别就在于 默认的访问权限不同
  • 区别:
    • struct默认访问权限为公共
    • class默认访问权限为私有

成员属性设置为私有

优点1:将所有属性设置为私有,可以自己控制读写权限

优点2:对于读写权限,我们可以检测数据的有效性

示例:

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. class Person {
  5. public:
  6. //设置姓名
  7. void setName(string name) {
  8. this->name = name;
  9. }
  10. // 获取姓名
  11. string getName() {
  12. return this->name;
  13. }
  14. // 设置年龄,检测年龄的有效性
  15. void setAge(int age) {
  16. if (age < 0 || age > 150) {
  17. this->age = 0;
  18. cout << "输入有误!" << endl;
  19. return;
  20. }
  21. this->age = age;
  22. }
  23. // 获取年龄
  24. int getAge() {
  25. return this->age;
  26. }
  27. // 设置情人
  28. void setLover(string lover) {
  29. this->lover = lover;
  30. }
  31. private:
  32. // 姓名
  33. string name; // 读写权限
  34. //年龄
  35. int age = 20; // 只读权限
  36. // 情人
  37. string lover; // 只写权限
  38. };
  39. int main(void) {
  40. Person p1;
  41. p1.setName("张三");
  42. p1.setAge(20);
  43. int age = p1.getAge();
  44. string name = p1.getName();
  45. p1.setLover("小三");
  46. cout << "姓名:" << name << " 年龄:" << age << endl;
  47. return 0;
  48. }