一、封装概述
C++在定义类的时候,可以通过设置不同的访问权限区分开我们想公布或者想隐藏起来的对象的属性。但是对于那些需要保密的数据,我们有时候需要在该类的外部进行修改,所以我们只能定义一些函数接口实现这些保密属性的读写。并且通过不同的设置,我们可以令某种属性只为可读或者可写状态。这大概就是封装的含义
二、三种访问权限
- public(全局可访问)
在这里设置一些全局可修改的属性,另外对后面两个访问权限下的属性的修改接口也是在这里定义。 - protected(子类可访问)
这里涉及到类和对象的另外一个特性:继承。子类可以访问父类的protected权限下的属性。 - private(只有本类内部可访问)
在这里设置一些保密的属性,只有通过外部的接口可以访问。
三、接口的实现:
#include <iostream>
#include <string>
using namespace std;
class student {
public:
int displayAge() //由于age属性只定义了一个读取的接口,所以它为只读属性
{
return age;
}
long long displayNumber()
{
return number;
}
void setNumber(long long num) //由于number属性既定义了读取接口,又定义了设置接口,所以为可读可写属性
{
number = num;
}
private:
int age=10;
long long number=12345678;
};
int main()
{
student stu_1;
cout<<"学生1的年龄为:"<<stu_1.displayAge()<<endl;
cout<<"\n学生1的学号为:"<<stu_1.displayNumber()<<endl;
stu_1.setNumber(23456789);
cout<<"\n修改后的学生1的学号为:"<<stu_1.displayNumber()<<endl;
system("pause");
}