类的定义
格式
class <类名>
{
private: //私有成员
<数据成员说明语句>;
<函数成员说明语句>;
public: //公有成员
<数据成员说明语句>;
<函数成员说明语句>;
protected: //保护成员
<数据成员说明语句>;
<函数成员说明语句>;
};
例子: 实体钟表如何抽象描述
- 特征:即数据成员
- 时、分、秒
- 型号、生产厂、出厂日期、价格等
- 功能:即函数成员
- 设置时间
- 钟表运转或运行
- 报时响铃
- 显示时间
- ……
定义钟表类
class Clock //定义钟表类
{
private: //数据成员一般为私有
int Hour; //小时属性
int Minute; //分钟属性
int Second; //秒属性
float Price; //价格属性
public:
void Set(int h, int m, int s, float p); //设置时间操作
void Run(); //钟表运转操作
void Show_time(); //报时响铃操作
void Report_time(); //显示时间操作
}
上述只是把框架搭起来了,下面需要定义成员函数。
成员函数定义方法
类定义的语法格式
class <类名>
{
<类体>
};
- 1.在类体内直接定义函数成员,该成员函数又称内联函数
- 在类体内定义内联函数等同一般函数定义格式
- 2.在类体外定义函数成员
- 在类体外定义成员函数的一般形式如下:
<类型> <类名> :: <函数名> (<参数表>)
{
<函数体>
};
::
作用域符号
类联函数定义方法:
class Clock
{
private:
int Hour;
int Minute;
int Second;
float Price;
public:
void Set(int h, int m, int s, float p);
void Run();
void Report_Time();
void Show_Time(){cout << Hour << ":" << Minute << ":" << second;};
};
类外定义成员函数方法
void Clock::Set(int h, int m, int s, float p)
{
Hour = h;
Minute = m;
Second = s;
Price = p;
}
void Clock::Run()
{
int i=0;
for(i;i<10;i++) //只模拟运行10秒钟
{
Second++;
if(Second==60)
{
Second = 0;
Minute++;
if(Minute==60)
{
Minute=0;
Hour++;
if(Hour==24)
{
Hour = 0;
}
}
}
cout << '\r';
sleep(1000); //程序暂停运行1000毫秒
Show_time();
}
}
void Clock::Report_Time()
{
Show_Time();
if(Minute==0 && Second==0)
{
for(int i=0; i<Hour; i++)
{
cout << "\007"; // 蜂鸣器
Sleep(1000);
}
}
}