cpp-成员属性设置为私有

01-3 成员属性设置为私有

在实际使用、开发之中,一般都会把成员属性设置为私有,也就是private。这样会产生如下的好处:

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

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

  1. 可以自己控制读写权限。

    #include 
    #include 
    using namespace std;
    class person
    {
    private:
    string m_name;
    int m_age;
    int m_password;
    public:
    void setname(string newname)
    {
        m_name = newname;
    }
    string getname()
    {
        return m_name;
    }
    void setage(int age)
    {
        m_age = age;
    }
    int getpassword()
    {
        return m_password;
    }
    };
    int main()
    {
    class person p1;
    int out = 1;
    while (1 <= out <= 4)
    {
        cout << "输入1修改姓名,输入2获取姓名,输入3设年龄,输入4读取密码,其他退出。" << endl;
        cin >> out;
        if (out == 1)
        {
            cout << "修改姓名:";
            string name;
            cin >> name;
            p1.setname(name);
        }
        else if (out == 2)
        {
            string name = p1.getname();
            cout << "姓名:" << name << endl;
        }
        else if (out == 3)
        {
            cout << "设年龄:";
            int age;
            cin >> age;
            p1.setage(age);
        }
        else if (out == 4)
        {
            int password = p1.getpassword();
            cout << "姓名:" << password << endl;
        }
        else
        {
            cout << "退出了。" << endl;
            break;
        }
    }
    system("pause");
    return 0;
    }

    在上面的代码里,我们设计了一个类,这个类表示的是一个人。

    姓名 设置为可读可写
    年龄 设置为只读
    密码 设置为只写

    为了完成这些要求,我们设计一些公共权限(public)的接口(应该可以称呼为接口),这样我们就可以在下面的代码中访问。(可以试一下。)这样子我们就可以设置访问权限。

  2. 我们可以检测数据的有效性

    我们还是上面的例子,这时候加一个,允许写入年龄,但是年龄范围为 0 到 150。

    那么我们可以设计一个新的接口:

    void setage(int age)
    {
        if (age < 0 or age > 150)
        {
            cout << "pa" << endl;
            return;
        }
        m_age = age;
        cout << "修改成功" << endl;
        return;
    }

    那么运行一下:

    输入1修改姓名,输入2获取姓名,输入3读取年龄,输入4设置密码,输入5写入年龄,其他退出。
    5
    修改年龄:10
    修改成功
    输入1修改姓名,输入2获取姓名,输入3读取年龄,输入4设置密码,输入5写入年龄,其他退出。
    5
    修改年龄:180
    pa
    输入1修改姓名,输入2获取姓名,输入3读取年龄,输入4设置密码,输入5写入年龄,其他退出。
    3
    年龄:10

    在成员函数中,可以设计检测数据的有效性。

最后看一眼写出来的东西:

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

//设计一个人的类
class person
{
private:
    //姓名 设置为可读可写
    string m_name;
    //年龄 设置为只读  再加上可写
    int m_age;
    //密码 设置为只写
    int m_password;
public:
    //设置姓名
    void setname(string newname)
    {
        m_name = newname;
    }
    //获取姓名
    string getname()
    {
        return m_name;
    }
    //读取年龄
    int getage()
    {
        return m_age;
    }
    //写入密码
    void setpassword(int password)
    {
        m_password = password;
    }
    //写入年龄 范围为0-150
    void setage(int age)
    {
        if (age < 0 or age > 150)
        {
            cout << "pa" << endl;
            return;
        }
        m_age = age;
        cout << "修改成功" << endl;
        return;
    }
};
int main()
{
    class person p1;
    int out = 1;
    while (1 <= out <= 4)
    {
        cout << "输入1修改姓名,输入2获取姓名,输入3读取年龄,输入4设置密码,输入5写入年龄,其他退出。" << endl;
        cin >> out;
        if (out == 1)
        {
            cout << "修改姓名:";
            string name;
            cin >> name;
            p1.setname(name);
        }
        else if (out == 2)
        {
            string name = p1.getname();
            cout << "姓名:" << name << endl;
        }
        else if (out == 3)
        {
            int age = p1.getage();
            cout << "年龄:" << age << endl;
        }
        else if (out == 4)
        {
            cout << "修改密码:";
            int password;
            cin >> password;
            p1.setpassword(password);
        }
        else if (out == 5)
        {
            cout << "修改年龄:";
            int age;
            cin >> age;
            p1.setage(age);
        }
        else
        {
            cout << "退出了。" << endl;
            break;
        }
    }
    system("pause");
    return 0;
}
文章「cpp-成员属性设置为私有」,由本站用户「Admin」发布。文章仅代表Admin观点,不代表本站立场。
页面网页地址「https://xiaozhiyuqwq.top/p/852」。
如您对文章及其附件提出版权主张,或进行引用转载等,请查看我们的【版权声明】
无评论:-)

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇