C++面向对象:成员属性的私有化

成员属性私有化

  • 优点1:将成员属性设置为私有,可以自己控制读写权限
  • 优点2:对于写权限,我们可以检测数据的有效性。
#include <iostream>
#include <string>
using namespace std;
class Person
{

public:
    //写姓名,设置姓名,让姓名可读可写
    void setName(string n)
    {
        name = n;
    }
    // 读姓名(获取姓名)
    string getName()
    {
        return name;
    }
    // 年龄可读
    int getAge()//可读可写,如果想修改,年龄的范围必须是0~15
    {
        age = 0; //初始化年龄
        return age;
    }
    //设置年龄
    void setAge(int a){
        if(age<0 || age>150){
            cout<<"age is error"<<endl;
            return ;
        }
        age=a;
    }
    //lover只写
    void setLover(string l)
    {
        lover = l;
    }

private: //设置之后无法拿到权限
    string name;
    int age;      //只读
    string lover; //只写
};
int main()
{
    Person p;
    p.setName("zhangsan");
    cout << "name is: " << p.getName() << endl;
    cout << "age is " << p.getAge() << endl;
    p.setLover("aaaa"); //无法通过外界获取

    system("pause");
    return 0;
}

成员属性的私有化能够防止数据被不小心篡改。
但是要想使用私有化属性就必须使用公有化的方法,而且公有化的方法必须在类里面撰写。

posted @ 2021-05-12 09:58  Zeker62  阅读(98)  评论(0编辑  收藏  举报