类和对象–封装
1.封装的意义
封装是C++面向对象三大特性之一
封装的专有名词:
- 属性和行为统称为成员
- 属性可称为: 成员属性 成员变量
- 行为可称为: 成员函数 成员方法
封装的意义:
- 将属性和行为作为一个整体,表现一种事物。
- 将属性和行为加以权限控制
封装的意义一:将属性和行为作为一个整体,表现一种事物。
示例1:
//设计一个学生类,属性有姓名和学号,可以给学号姓名赋值,可以展示学号姓名
#include<iostream>
#include<string>
using namespace std;
//设计一个学生类,将属性和行为作为一个整体,表现一种事物。
class student
{
//访问权限
public:
//属性
string name;
int num;
//行为
//显示姓名学号
void showStudent()
{
cout << "姓名:" << name << endl<<"学号:" << num << endl;
}
};
int main()
{
//实例化
student a1;
a1.name = "牢大";
a1.num = 824;
a1.showStudent();
}
PS:实例化指的是,通过类创建对象的过程。
封装的意义二:将属性和行为加以权限控制
访问权限:
- public: 公共权限。类内与类外都可以访问。
- protected: 保护权限。类内可以访问,类外不可访问。子元素可以访问父元素的内容
- private: 私有权限。类内可以访问,类外不可访问。子元素不可访问父元素的内容
示例2:
#include<iostream>
#include<string>
using namespace std;
class man
{
//属性权限控制
public:
string nickname;//昵称
protected:
string vehicle;//载具
private:
int password;//密码
//行为权限控制
public:
void func()
{
nickname = "牢大";
vehicle = "helicopter";
password = 824;
}
};
int main()
{
man a1;
a1.nickname = "曼巴";
//a1.vehicle不可访问,编译器报错
//a1.password不可访问,编译器报错
}
2.class和struct的区别
在C++中class和struct唯一的区别是:默认访问权限不同。
区别:
- class的默认访问权限:private
- struct的默认访问权限:public