欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类与对象,定义一个钟表类

程序员文章站 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;
}