封装是C++面向对象三大特性之一
封装的意义:
将属性和行为作为一个整体,表现生活中的事物
将属性和行为加以权限控制
封装意义一:
在设计类的时候,属性和行为写在一起,表现事物
语法:class 类名{访问权限:属性/ 行为};
eg:设计一个圆类,求圆的周长
#include<iostream>
using namespace std;
const double PI = 3.14;
//圆周长公式:2*PI*r
//class代表设计一个类,类后面紧跟着的就是类名称
class Circle
{
//访问权限
//公共权限
public:
//属性
int m_r;//半径
//获取圆的周长
double zhouchang()
{
return 2 * PI * m_r;
}
};
int main()
{
//通过圆类 创建具体的圆(对象)
Circle C1; //实例化,通过一个类创建对象的过程
//给圆的对象 的属性进行赋值
C1.m_r = 10;
cout << "圆的周长为:" << C1.zhouchang() << endl;
system("pause");
return 0;
}
eg:设计一个学生类
#include<iostream>
using namespace std;
class Student
{
public:
void SetName(string name)
{
Name = name;
}
void setID(int id)
{
m_id = id;
}
void showStudent()
{
cout << "name" << Name << "ID" << m_id << endl;
}
public:
string Name;
int m_id;
};
int main()
{
Student stu;
stu.SetName ("jdkdl");
stu.setID(290);
stu.showStudent();
system("pause");
return 0;
}
封装意义二
类在设计时,可以把属性和行为放在不同的权限下,加以控制访问权限有三种:
1.public公共权限
2.protected 保护权限
3.private私有权限
#include<iostream>
using namespace std;
//三种权限
//公共权限public类内可以访问类外可以访问
//保护权限protected类内可以访问类外不可以访问
//私有权限private类内可以访问类外不可以访问
class Person
{
//姓名 公共权限
public:
string m_Name;
//汽车 保护权限
protected:
string m_Car;
//银行卡密码 私有权限
private:
int m_Password;
public:
void func()
{
m_Name = "小米";
m_Car = "挖机";
m_Password = 123456789;
}
};
int main()
{
Person p;
p.m_Name = "小花";
// p.m_Car = "奔驰";//保护权限类外访问不到
//p.m_Password = 123; //私有权限类外访问不到
system("pause");
return 0;
}