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

相关推荐
跨境卫士苏苏2 分钟前
亚马逊AI广告革命:告别“猜心”,迎接“共创”时代
大数据·人工智能·算法·亚马逊·防关联
ZouZou老师3 分钟前
C++设计模式之装饰器模式:以家具生产为例
c++·设计模式·装饰器模式
ZouZou老师21 分钟前
C++设计模式之桥接模式:以家具生产为例
c++·设计模式·桥接模式
diegoXie27 分钟前
Python / R 向量顺序分割与跨步分割
开发语言·python·r语言
程序员小白条29 分钟前
0经验如何找实习?
java·开发语言·数据结构·数据库·链表
呱呱巨基29 分钟前
Linux 进程概念
linux·c++·笔记·学习
liulilittle35 分钟前
C++ 浮点数封装。
linux·服务器·开发语言·前端·网络·数据库·c++
云雾J视界37 分钟前
当算法试图解决一切:技术解决方案主义的诱惑与陷阱
算法·google·bert·transformer·attention·算法治理
Xの哲學38 分钟前
Linux Miscdevice深度剖析:从原理到实战的完整指南
linux·服务器·算法·架构·边缘计算
ZouZou老师1 小时前
C++设计模式之组合模式:以家具生产为例
c++·设计模式·组合模式