11.2 C++类的封装

Posted C语言入门到精通

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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++类的封装的主要内容,如果未能解决你的问题,请参考以下文章

C++之类之访问控制与封装

C++初阶第四篇——类和对象(上)(类的定义+封装+this指针)

C++从青铜到王者第二篇:C++类和对象(上篇)

C++的三大特性封装继承和多态

C++试题精选----类的封装和继承----NO.2

C++类成员的访问权限以及类的封装