封装,可以达到,对外提供接口,屏蔽数据,对内开放数据。
比如我们用struct封装的类,即知其接口,又可以直接访问其内部数据,这样却没有达到信息隐蔽的功效。而class则提供了这样的功能,屏蔽内部数据,对外开放接口。struct中所有行为和属性都是public的(默认)。C++中的class可以指定行为和属性的访问方式,默认为pirvate。
各个具体如下:
访问属性 属性 对象内部 对象外部
public 公有 可访问 可访问
protected 保护 可访问 不可访问
private 私有 可访问 不可访问
class封装的本质,在于将数据和行为,绑定在一起然后通过对象来完成操作。
#include<iostream>
using namespace std;
class Date
{
public:
void init() //Date类访问自己的成员可以不需要能过传引用的方式
{
cout<<"year,month,day:"<<endl;
cin>>year>>month>>day;
}
bool isLeapYear(Date&d);
private:
int year; //数据成员
int month;
int day;
};
void Date::print(Date&d) // 类成员需要加 :: 来表示
{
cout<<"year monthday"<<endl;
cout<<d.year<<":"<<d.month<<":"<<d.day<<endl;
}
版权声明:本文为博主原创文章,未经博主允许不得转载