一、封装的意义
将属性和行为作为一个整体,用来表现生活中的事物
案例一 圆类
//圆周率
const double PI = 3.14;
//封装一个圆类,求圆的周长
//class代表设计一个类,后面跟着的是类名
class Circle
{
public: //访问权限 公共的权限
//属性
int m_r;//半径
//行为
//获取到圆的周长
double calculateZC()
{
//2 * pi * r
//获取圆的周长
return 2 * PI * m_r;
}
};
int main() {
//通过圆类,创建圆的对象
// c1就是一个具体的圆
Circle c1;
c1.m_r = 10; //给圆对象的半径 进行赋值操作
//2 * pi * 10 = 62.8
cout << "圆的周长为: " << c1.calculateZC() << endl;
system("pause");
return 0;
}
学生类案例
类中的行为称为成员方法或成员函数
类中的属性成为成员变量或成员属性
本案例用成员函数的方式来读取类的成员变量
//学生类
class Student {
public:
void setName(string name) {
m_name = name;
}
void setID(int id) {
m_id = id;
}
void showStudent() {
cout << "name:" << m_name << " ID:" << m_id << endl;
}
public:
string m_name;
int m_id;
};
int main() {
Student stu;
stu.setName("龙冠桦");
stu.setID(666);
stu.showStudent();
return 0;
}
二、类的访问权限
-
public 公共权限 //成员 类内可以访问,类外可以访问
-
protected 保护权限 //成员 类内可以访问,类外不可以访问 儿子可以访问父亲的保护内容
-
private 私有权限 //成员 类内可以访问,类外不可以访问 儿子不能访问父亲的保护内容
如下
三、struct与class的区别
在C++中 struct和class唯一的区别就在于 默认的访问权限不同
区别:
-
struct 默认权限为公共 public
-
class 默认权限为私有 private
四、成员属性设置为私有
优点1:将所有成员属性设置为私有(private),可以自己控制读写权限
优点2:对于写权限,我们可以检测数据的有效性
tips
1、在类中可以让另一个类作为该类的成员
2、
.cpp中告诉他是成员函数