手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

C 的类和类的定义

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
在面向对象的程式设计中,有经常接触类、对象等专业名词;到底什么是类、什么是对象呢?在程式又是怎样运用呢?类是面向对象程式设计的核心,他实际是一种新的数据类型,也是实现抽象类型的工具,因为类是通过抽象数据类型的方法来实现的一种数据类型。类是对某一类对象的抽象;而对象是某一种类的实例,因此,类和对象是密切相关的。没有脱离对象的类,也没有不依赖于类的对象。

  什么是类

  类是一种复杂的数据类型,他是将不同类型的数据和和这些数据相关的操作封装在一起的集合体。这有点像C语言中的结构,唯一不同的就是结构没有定义所说的“数据相关的操作”,“数据相关的操作”就是我们平常经常看到的“方法”,因此,类具备更高的抽象性,类中的数据具备隐藏性,类还具备封装性。

  类的结构(也即类的组成)是用来确定一类对象的行为的,而这些行为是通过类的内部数据结构和相关的操作来确定的。这些行为是通过一种操作接口来描述的(也即平时我们所看到的类的成员函数),使用者只关心的是接口的功能(也就是我们只关心类的各个成员函数的功能),对他是如何实现的并不感兴趣。而操作接口又被称为这类对象向其他对象所提供的服务。

  类的定义格式

  类的定义格式一般地分为说明部分和实现部分。说明部分是用来说明该类中的成员,包含数据成员的说明和成员函数的说明。成员函数是用来对数据成员进行操作的,又称为“方法”。实现部分是用来对成员函数的定义。概括说来,说明部分将告诉使用者“干什么”,而实现部分是告诉使用者“怎么干”。

  类的一般定义格式如下:
class <类名>
{
 public:    <成员函数或数据成员的说明>
 private:    <数据成员或成员函数的说明>
};    <各个成员函数的实现>

  下面简单地对上面的格式进行说明:class是定义类的关键字,<类名>是种标识符,通常用T字母开始的字符串作为类名。一对花括号内是类的说明部分(包括前面的类头)说明该类的成员。类的成员包含数据成员和成员函数两部分。从访问权限上来分,类的成员又分为:公有的(public)、私有的(private)和保护的(protected)三类。公有的成员用public来说明,公有部分往往是一些操作(即成员函数),他是提供给用户的接口功能。这部分成员能够在程式中引用。私有的成员用private来说明,私有部分通常是一些数据成员,这些成员是用来描述该类中的对象的属性的,用户是无法访问他们的,只有成员函数或经特别说明的函数才能够引用他们,他们是被用来隐藏的部分。保护类(protected)将在以后介绍。

  关键字public,private和protected被称为访问权限修饰符或访问控制修饰符。他们在类体内(即一对花括号内)出现的先后顺序无关,并且允许多次出现,用他们来说明类成员的访问权限。
  其中,<各个成员函数的实现>是类定义中的实现部分,这部分包含任何在类体内说明的函数的定义。假如一个成员函数的类体内定义了,实现部分将不出现。假如任何的成员函数都在类体内定义,则实现部分能够省略。

下面给出一个日期类定义的例子:
class Tdate
{
 public:
 void SetDate(int y, int m, int d);
 int IsLeapYear();
 void Print();
 private:
 int year, month, day;
};     //类的实现部分
void Tdate::SetDate(int y, int m, int d)
{
 year = y;
 month = m;
 day = d;
}
int Tdate::IsLeapYear()
{
 return(year%4==0 && year0!=0) || (year@0==0);
}
void Tdate::Print();
{
 cout< }

  这里出现的作用域运算符::是用来标识某个成员函数是属于哪个类的。

  该类的定义还能够如下所示:
class Tdate
{
 public:
 void SetDate(int y, int m, int d)
  {year=y; month=m; day=d;}
  int IsLeapYear()
  {return(year%4==0 && year0!=0) || (year@0==0);}
void Print()
  {cout<   private:
 int yeay, month, day;
}

   这样对成员函数的实现(即函数的定义)都写在了类体内,因此类的实现部分被省略了。假如成员函数定义在类体外,则在函数头的前面要加上该函数所属类的标识,这时使用作用域运算符::。

   定义类时应注意的事项

   1、在类体中不允许对所定义的数据成员进行初始化。

   2、类中的数据成员的类型能够是任意的,包含整型、浮点型、字符型、数组、指针和引用等。也能够是对象。另一个类的对象,能够作该类的成员,但是自身类的对象是不能够的,而自身类的指针或引用又是能够的。当一个类的对象用为这个类的成员时,假如另一个类的的定义在后,需要提前说明。

   3、一般地,在类体内先说明公有成员,他们是用户所关心的,后说明私有成员,他们是用户不感兴趣的。在说明数据成员时,一般按数据成员的类型大小,由小至大说明,这样可提高时空利用率。

   4、经常习惯地将类定义的说明部分或整个定义部分(包含实现部分)放到一个头文档中。



文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS