从C语言过度到了C++的学习阶段,初步了解到了面向过程的程序设计与面向对象的程序设计的不同,而面向对象化的程序设计过程中,其中一个很重要的思想就是类的思想,这里就要简单阐述我初步学习的面向对象程序设计的类这一思想。
类是面向对象程序设计的核心,利用类可以实现对数据的封装和隐蔽。在面向对象程序设计中,程序模块是又类构成的。类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。
这里以时钟为例,时钟类的定义如下:
class clock
{
public:
void settime(int newh,int newm,int news);
void shoetime();
private:
int hour,minute,second;
};
这里,封装了时钟的数据和行为,分别称为Clock类的数据成员和函数成员。定义类的语法形式如下:
class //类名称
{
public: //外部接口
protected: //保护型成员
private: //私有成员
};
公有类型成员定义了类的外部接口,用public关键字声明,在类外只能访问类的公有成员。
私有类型成员只能被本类的成员函数访问,来自类外部的任何访问都是非法的。
保护类型成员的性质和私有成员的性质相似,其差别在于继承过程中对产生的新类影响不同。
下列是时钟类的完整程序:
#include <iostream>
using namespace std;
class clock
{
public:
void settime(int newh=0,int newm=0,int news=0);
void showtime();
private:
int hour,minute,second;
};
void clock::settime(int newh,int newm,int news)
{
hour=newh;
minute=newm;
second=news;
};
/*inline*/ void clock::showtime()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
};
int main()
{
clock myclock;
cout<<"first time set and output:"<<endl;
myclock.settime();
myclock.showtime();
cout<<"second time set and output"<<endl;
myclock.settime(8,30,30);
myclock.showtime();
return 0;
}