[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不符合要求

相关推荐
丝斯20117 分钟前
AI学习笔记整理(70)——AI+CAE
人工智能·笔记·学习
流云鹤8 分钟前
2026牛客寒假算法基础集训营2(A B I F E H)
算法
大黄说说11 分钟前
Go 实战 LeetCode 151:高效翻转字符串中的单词(含空格处理技巧)
开发语言·leetcode·golang
Lun3866buzha12 分钟前
紧固件智能检测与分类_ATSS_R101_FPN_1x_COCO算法解析与Pytorch实现
pytorch·算法·分类
MSTcheng.14 分钟前
【Leetcode二分查找】『在排序数组中查找元素的第一个和最后一个位置&搜索插入位置』
算法·leetcode·职场和发展
初夏睡觉14 分钟前
笔记(动态规划(引入)1)
笔记·算法·动态规划
王老师青少年编程16 分钟前
2021年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)
c++·题解·真题·初赛·信奥赛·csp-s·提高组
colicode18 分钟前
Objective-C语音验证码接口API示例代码:老版iOS应用接入语音验证教程
前端·c++·ios·前端框架·objective-c
热爱生活的猴子18 分钟前
二分查找类算法题核心笔记
数据结构·笔记·算法
大模型实验室Lab4AI18 分钟前
GDPO:多目标强化学习高效优化新路径
人工智能·深度学习·算法·机器学习