在Java中封装数据是面向对象三大特性中的一个种,在C++中数据的封装和Java中思想一样。就是讲抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据和操作数据的函数代码进行有机的结合,形成类,其中数据和函数都是类的成员。
下面是一个时钟类:类的定义
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//类体内定义成员函数定义是一定要定义为内联函数前面加inline关键字修饰
class Clock
{
private:
int Hour,Minute,Second; //私有成员
public: //外部接口
void SetTime(int NewH,int newM,int NewS);
void ShowTime();
};
int main(int argc, char** argv) {
Clock clock;
clock.SetTime(11,12,32);
clock.ShowTime();
cout<<"----------------------"<<endl;
Clock *p = &clock;
p->SetTime(23,15,56);
p->ShowTime();
cout<<"----------------------"<<endl;
Clock &p3 = clock;
p3.SetTime(12,31,42);
p3.ShowTime();
return 0;
}
//类体内定义时要加inline定义为内敛函数
inline void Clock::SetTime(int NewH,int newM,int NewS)
{
Hour = NewH;
Minute = newM;
Second = NewS;
}
inline void Clock::ShowTime()
{
cout<<" hour "<<Hour<<" minute "<<Minute<<" second "<<Second<<endl;
}
总结:
一共2个知识点,数据的封装,根据需求对访问权限和类的成员变量和成员函数的定义。
2、类体内成员函数的定义时必须定义成内敛函数也就是在函数前面必须要加inline关键字。