11.2 C++类的封装 | 类的封装
C++公用接口与私有实现的分离C++通过类来实现封装性,把数据和与这些数据有关的操作封装在一个类中,或 者说,类的作用是把数据和算法封装在用户声明的抽象数据类型中,在声明了一个类以后,用户主要是通过调用公用的成员函数来实现类提供的功能
C++公用成员函数是用户使用类的公用接口或者说是类的对外接口,当然并不一定要把所有成员函数都指定为public的,但这时这些成员函数就不是公用接口了。
C++类外虽然不能直接访问私有数据成员,但可以通过调用公用成员函数来引用甚至修改私有数据成员,用户可以调用公用成员函数来实现某些功能,而这些功能是在声明类时已指定的,用户可以使用它们 而不应改变它们。
实际上用户往往并不关心这些功 能是如何实现的细节,而只需知道调用哪个函数会 得到什么结果,能实现什么功能即可。 C++通过成员函数对数据成员进行操作称为类的实现, 为了防止用户任意修改公用成员函数,改变对数据进行的操作,往往不让用户看到公用成员函数的源代码,显然更不能修改它,用户只能接触到公用成员函数的目标代码。
类中被操作的数据是私有的,实现的细节对用户是隐蔽的,这种实现称为私有实现,类的公用接口与私有实现的分离形成了信息隐蔽。
- 如果想修改或扩充类的功能,只需修改本类中有关的数据成员和与它有关的成员函数,程序中类外的部分可以不必修改。
- 如果在编译时发现类中的数据读写有错,不必检查整个程序,只需检查本类中访问这些数据的少数成员函数。
C++类的成员函数在面向对象程序理论中被称为方法,方法是指对数据的操作,一个方法对应一种操作,只有被声明为公用的方法,才能被对象外界所激活,外界是通过发命令来调用有关方法的。
案例:C++使用类。
#include<iostream>//预处理
using namespace std;//命名空间
class Time
{
public: //声明以下是公用的
int day; int hour; int minute;
};
int main()//主函数
{
Time time1;//定义time1为Time类对象
cout<<"输入天:"<<endl; cin>>time1.day;
cout<<"输入小时:"<<endl;
cin>>time1.hour;
cout<<"输入分钟:"<<endl;
cin>>time1.minute;
cout<<"写这篇文章是"<<time1.day<<"号,";
cout<<time1.hour<<"点:";
cout<<time1.minute<<"分"<<endl;
return 0; //函数返回值为0;
}
编译运行结果:
输入天:
21
输入小时:
20
输入分钟:
38
写这篇文章是21号,20点:38分
--------------------------------
Process exited after 9.871 seconds with return value 0
请按任意键继续. . .
以上,如果你看了觉得对你有所帮助,就给小林点个赞叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~
11.2 C++类的封装 | 类的封装文章来源: zhuanlan.zhihu.com,作者:C语言入门到精通,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuanlan.zhihu.com/p/346125843
- 点赞
- 收藏
- 关注作者
评论(0)