[C++ 核心编程]笔记 4.1.3 成员属性设置为私有

4.1.3 成员属性设置为私有

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

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

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

//人类
class Person
{
public:
	//设置姓名
	void setName(string name)
	{
		m_Name = name;

	}
	//获取姓名
	string getName()
	{
		return m_Name;
	}

	//获取年龄
	int getAge()
	{
		return m_Age;
	}
	//设置年龄(0-150)
	void setAge(int age)
	{
		if (age < 0 || age>150)
		{
			cout << "年龄"<<age<< " 输入有误, 赋值失败" << endl;
			return;
		}
		m_Age= age;
	}

	//设置偶像
	void setIdol(string idol)
	{
		m_Idol = idol;
	}
private:
	string m_Name;//可读可写

	int m_Age =18;//只读		也可以写(年龄必须在0-150)

	string m_Idol;//只写
};

int main()
{
	Person p;
	//姓名设置
	p.setName("张三");
	cout << "姓名: " << p.getName() << endl;

	//年龄设置
	p.setAge(160);
	//获取年龄
	cout << "年龄: " << p.getAge() << endl;

	//偶像设置
	p.setIdol("坤哥");
	//cout << "偶像: " << p.getIdol() << endl;//只写, 外界无法访问


	system("pause");
	return 0;
}

运行结果:

可以看到检测到年龄160不符合要求

相关推荐
黄贵根5 小时前
JavaScript实现教培行业意向登记系统
开发语言·javascript·ecmascript
2401_868534787 小时前
RTOS之RT-Thread & Linux:线程/进程管理与调度核心差异分析
c++·python
zzzll11117 小时前
Claude Code离线安装方案揭秘
开发语言·php
wabs6668 小时前
关于图论【卡码网117.软件构建的思考】
数据结构·算法·软件构建·图论·卡码网
mifengxing8 小时前
LeetCode 41.缺失的第一个正数|Hard题O(n)+O(1)最优解法深度解析
java·算法·leetcode·排序算法
wling03018 小时前
vasp虚频计算-python脚本
开发语言·windows·python·vasp计算
一米阳光86618 小时前
软考(中级)软件设计师核心笔记(6)系统开发基础——需求分析、系统设计
笔记·职场发展·需求分析·软考·软件设计师·中级职称
郝学胜-神的一滴9 小时前
Qt 高级编程 040:按钮悬浮弹出滑块弹窗的完整攻略
开发语言·c++·qt·软件工程·用户界面
Tongzhi20269 小时前
从部署到运维:通芝科技无感考勤一体机的全流程效率解析
运维·数据结构·科技·算法·贪心算法
Wang's Blog9 小时前
AI Agent白手起家30: 动态示例选择器之根据长度选择 Few Shot 示例
算法