c++面向对象的三大特征为:封装,继承,多态
c++认为万物皆为对象,对象上有其属性和行为
封装:
封装的意义:
封装是c++面向对象的三大特征之一
1.封装的意义:
将属性和行为作为一个整体,表现生活中的事物
将属性和行为加以权限控制
封装意义一:
在设计类的时候,属性和行为写在一起,表现事物。
语法:class 类名{ 访问权限: 属性 / 行为};
//圆周率
const double PI = 3.14;
//1.封装的意义
//将属性和行为作为一个整体,用来表现生活中的事物
//封装一个圆类,求圆的周长
//class代表设计一个类,后面跟着的是类名
class Cricle
{
public: //访问权限 公共的权限
//属性
int m_r; //半径
//行为
//获取到圆的周长
double calculateZC()
{
//2 * PI * m_r
//获取圆的周长
return 2 * PI * m_r;
}
};
int main()
{
//通过圆类,创建圆的对象
//c1就是一个具体的图
Cricle c1;
c1.m_r = 10; //给圆的半径进行赋值操作
cout << c1.calculateZC() << endl; //输出圆的周长
}
创建一个学生类
class student
{
public: //公共权限
//属性
string name;
int id;
//显示姓名
void showname()
{
cout << name << id << endl;
}
};
int main()
{
//创建一个具体的对象
student s1;
s1.name = "张三";
s1.id = 123456;
s1.showname();
system("pause");
return 0;
}
类中的属性和行为都称为成员
封装意义二:
类在设计时,可以把属性和行为放在不同的权限下,加以控制
访问权限有三种:
1.public 公共权限:类内可以访问,类外可以访问
2.protected 保护权限:类内可以访问,类外不可以访问 子类可以访问
3.private 私有权限:类内可以访问,类外不可以访问 子类不可以访问
在c++中class和struct的区别
唯一的区别是默认的访问权限不同
struct的默认权限是公共
class的默认权限是私有
成员属性设置为私有
优点1:将所有成员属性设置为私有,可以自己控制读写权限
优点2:对于读写权限,我们可以检测数据的有效性
class student
{
public:
string setname(string name)
{
s_name = name;
return name;
}
string getname()
{
return s_name;
}
private:
string s_name;
int s_id;
};
int main()
{
//student.name = "李四"; //error
student p1;
p1.setname("李四");
cout << p1.getname() << endl; //李四
system("pause");
return 0;
}