4、成员属性设置为私有.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //成员属性设置为私有
  2. //优点 1 :将所有成员属性设置为私有,可以自己控制读写权限
  3. //有点 2 :对于写权限,我们可以检测数据的有效性
  4. #include <iostream>
  5. //设计人类
  6. class Person
  7. {
  8. public:
  9. //设置姓名
  10. void setName(std::string name)
  11. {
  12. m_Name = name;
  13. }
  14. //获取姓名
  15. std::string getName()
  16. {
  17. return m_Name;
  18. }
  19. //获取年龄
  20. //年龄可读可写 如果想修改 (年龄的范围必须是 0~150 之间)
  21. int getAge()
  22. {
  23. //m_Age = 0; //初始化为0岁
  24. return m_Age;
  25. }
  26. //设置年龄
  27. void setAge(int age)
  28. {
  29. if (age < 0 || age > 150)
  30. {
  31. m_Age = 0;
  32. std::cout << "你这个老妖精!" << std::endl;
  33. return;
  34. }
  35. m_Age = age;
  36. }
  37. //设置情人
  38. void setLover(std::string lover)
  39. {
  40. m_Lover = lover;
  41. }
  42. private:
  43. //姓名 可读可写
  44. std::string m_Name;
  45. //年龄 只读
  46. int m_Age;
  47. //情人 只写
  48. std::string m_Lover;
  49. };
  50. int main4()
  51. {
  52. Person p;
  53. p.setName("张三");
  54. std::cout << "姓名为 :" << p.getName() << std::endl;
  55. //p.m_Age = 18;
  56. //p.setAge(18);
  57. p.setAge(18);
  58. std::cout << "年龄为 :" << p.getAge() << std::endl;
  59. //设置情人为苍井
  60. p.setLover("苍井");
  61. //std::cout << "想知道p的情人是谁?" << p.m_Lover << std::endl; //是不可以访问到的 只写权限
  62. system("pause");
  63. return 0;
  64. }