C++面向对象的三大特性为:==封装、继承、多态==
封装
意义
* 将属性和行为作为一个整体,表现生活中的事物
* 将属性和行为加以权限控制
class 类名{ 访问权限: 属性 / 行为 };
-----设计一个圆类,求圆的周长
//圆周率
const double PI = 3.14;
//封装一个圆类,求圆的周长
class Circle //class代表设计一个类,后面跟着的是类名
{
//------访问权限
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;
}
访问权限
1. public 公共权限 类内可以访问 类外可以访问
2. protected 保护权限 类内可以访问 类外不可以访问
3. private 私有权限 类内可以访问 类外不可以访问(继承中能体现区别)
class Person
{
public: // 公共权限
string m_Name; //姓名
protected: // 保护权限
string m_Car; //汽车
private: //私有权限
int m_Password; //银行卡密码
public:
void func() //类内都可以访问
{
m_Name = "张三";
m_Car = "拖拉机";
m_Password = 123456;
}
};
int main() {
Person p; //创造一个具体对象
p.m_Name = "李四";
//p.m_Car = "奔驰"; //保护权限类外访问不到
//p.m_Password = 123; //私有权限类外访问不到
system("pause");
return 0;
}
struct vs class
区别:默认的访问权限不同 ;struct 默认权限为公共public class 默认权限为私有private
成员属性设置为私有
优点:
- 将所有成员属性设置为私有,可以自己控制读写权限
- 对于写权限,可以检测数据的有效性