类与对象,定义一个钟表类
程序员文章站
2024-03-16 10:23:16
...
可以用视频描述实体。
可以用文章描述实体。
可以用照片描述实体。
那怎么用c++描述实体呢?
我们先将实体抽象化,
抽象化即将实体化成多个特征和功能,来表示实体。
此刻我们可以得到一个对象,对象=实体特征+实体功能
类就是具有相同特征和功能的对象的合集
对象是类的个体或者说是元素
定义类的语法格式:
数据成员一般为私有成员,私有成员一般为对象的特征;
函数成员一般为公有成员,公有成员一般为对象的功能。
类体外定义成员函数的语法格式
<类型><类名>::<函数名>(<参数表>)
{
函数体
}
对类中成员的访问使用.运算符,类似于clock.set(0,0,0,1000)
注意:一般在类体外,只有公有成员能采用.运算符,私有和保护都不能.运算符访问。
例题:定义钟表类
实现一个简单的可以报时,运行的钟表
#include<iostream>
#include<windows.h>
using namespace std;
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)//设置四个数据成员值的函数
{
h=Hour;
m=Minute;
s=Second;
p=Price;
}
void Clock::Run()
{
int i=0;
for(i=0;i<10;i++)//只模拟十次运行
{
Second++;
if(Second==60)
{
Second=0;//此时是赋值,不能用==
Minute++;//当秒到六十时,秒归零,分钟加一
if(Minute==60)
{
Minute=0;
Hour++;
if(Hour==24)
Hour=0;
}
}
cout<<'\r';//不换行返回当前行的首位
Show_Time();
Sleep(1000);//程序暂停运行秒
}
}
void Clock::Report_Time()
{
Show_Time();
if(Minute==0&&Second==0)
{
for(int i=0;i<Hour;i++)
{
cout<<'\007';//'\007'是专门响铃的字符
Sleep(1000);
}
}
}
int main()
{
Clock hu_ben;//声明对象的一般形式就是<类名> 对象1,对象2...;这里只声明了hu_ben
hu_ben.Set(0,0,0,100);
cout<<"钟表设置的时间为:"<<endl;
hu_ben.Report_Time();
hu_ben.Run();
system("pause");
hu_ben.Set(9,59,50,100);
cout<<"\n钟表设置的时间:\n";
hu_ben.Run();
cout<<endl;
hu_ben.Report_Time();
cout<<endl;
hu_ben.Show_Time();
cout<<endl;
Clock Omiga;
cout<<"显示Omiga的时间:";
Omiga=hu_ben;
Omiga.Show_Time();
cout<<endl;
return 0;
}