C++学习日记——封装和访问控制

学习目标

学习类得封装和访问控制,很有必要!
在这里插入图片描述


学习内容

封装和访问控制
封装(隐藏对象的属性和实现细节,仅对外部提供公共的访问方式)即将数据和方法封装在一起,数据被保护在内部,避免外部修改数据,通常使用private进行封装,即加入了权限限制,封装
访问控制:

private(私有)
public(公共)
protected(受保护,相似于private,但子类可以访问父类)


学习代码

💖main.cpp

#include <iostream>
#include "student.h"
using namespace std;

int main() {
	Student s1;
	/*s1.m_name = "nihaos";
	s1.m_age = 20;
	s1.m_number = 1002;*/
	//上面访问不了因为在类声明中进行了访问控制,加入了private,故不能访问
	//采用方法进行访问,即函数访问
	s1.setname("nihao");
	s1.setage(20);
	s1.setnumber(1001);
	cout << s1.getname() << '\t' << s1.getage() << '\t' << s1.getnumber() << endl;
	//采用此方法还可以对输入的数值进行判断,防止输入错误字符或数字



	return  0;
}

💖student.cpp

#include<iostream>
#include"student.h"
using namespace std;

void Student::eat() {
	cout << "学生吃饭了" << endl;
}
void Student::sleep() {
	cout << "学生睡觉了" << endl;
}
void Student::study() {
	cout << "学生学习了" << endl;
}

void Student::setname(string name)
{
	m_name = name;
}

string Student::getname()
{
	return m_name;
}

void Student::setage(int age)
{
	m_age = age;
}

int Student::getage()
{
	return m_age;
}

void Student::setnumber(int number)
{
	m_number = number;
}

int Student::getnumber()
{
	return m_number;
}

💖student.h

#pragma once
#include <iostream>
#include<string>
using namespace std;

class Student
{
private://私有权限控制	,仅类内可以访问,子类不允许访问父类
	string m_name;
	int m_age;
	int m_number;

public://公共权限控制

	void eat();
	void sleep();
	void study();
	void setname(string name);
	string getname();
	void setage(int age);
	int getage();
	void setnumber(int number);
	int getnumber();

protected://受保护的控制权限,子类可以访问父类

};


代码实现

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不说二话的自家人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值