c语言中read()的用法,C语言中的宏的高级用法-Read.DOC

C语言中的宏的高级用法-Read

C语言中的宏的高级用法

引文:

以下内容引自高焕堂老师的《 HYPERLINK "/Chat/tomkao200812.htm" \t "_blank" UML+OOPC嵌入式开发》一书。

认识C的对象与类

类的用途

?? ?类的目的是﹕创造新数据型态。为那描述自然界的万事万物,必须有各式各样的数据型态,才足以充分贴切地表达自然界的静态与动态的美。C只提供数种基本数据型态,欲表达人类社会或大自然的景象,实在并不足够。

??? 然而C加上“类”(Class)概念之后,就很容易解决这个问题了。它让程序师定义与创造自己心爱的数据型态来描述心中所想的、眼睛所看到的任何自然界景象。

??? 在C里,int 、double 及char等常称为“基本数据型态”(Fundamental Data Type) ﹔藉类而创造出来的数据型态则称为“抽象数据型态”(Abstract Data Type)。“抽象”意谓着﹕类只描述自然事物的重要(Essential) 特征和行为,而忽略不重要的细节。于是,有个不成文的规则是﹕

????? ⊙由基本数据型态所宣告的变量,直称为变量。

????? ⊙由抽象数据型态(类)所宣告的变量,特称为对象。

?

此规则的目的是﹕让已受古典程序熏陶的C 程序师,能区别C 与OOPC的不同。如果您对软件的认识才刚起步,宜把变量和对象视为同义词,这是OOP 的本质,只因C++ 从C 演变而来,担负了新旧传承的任务,才加以区分的。

??? 例如﹕定义类如下﹕

????????? CLASS(Rose)

???????????? {

?????????????? ....

???????????? };

?

这Rose就是我们新创的数据型态,将用来生成对象,以描述自然界的玫瑰花。于是可宣告对象如下﹕

????????? Rose a;

????????? pr = RoseNew();

?

pa 是指向对象的指针,*pa 的型态是Rose。因对象就是变量,所以其在内存中也占有空间,裨储存数据。

?

??????????? ┌───────────────┐

??????????? │????????? ╭───╮????????? │

??????????? │??? 对象 a│????? │????????? │(主存储器)

??????????? │????????? ╰───╯????????? │

??????????? │????????????????????????????? │

??????????? └───────────────┘

?

定义类

? ??类是一群具有共同重要特性的对象。类的定义就是说明这群对象具有什么的重要特性。特性包括对象的特征及行为。软件中的对象以数据来表达特征,以函数来表达行为。因此,类的定义就是说明软件中的对象,应含那些数据及那些函数。定义类时,应考虑如下﹕

?

⊙我们欲描述那些对象﹖

??? 如果欲描述手中的一朵花,而此朵花是一朵(is a)玫瑰花,则可得知手上的花是对象,而玫瑰花是类。为了描述手上的玫瑰花,就得定义类叫Rose。

?

⊙对象有那些重要特征(Attribute)﹖

??? 如果您想描述其价钱,也想描述其最适合做那月份的生日花﹔则可知Rose类应包含两项重要数据──price 和month 。于是,就可运用lw_oop.h宏来定义Rose类,并生成对象了,如下﹕

?

#include "stdio.h"

#include "lw_oopc.h"

?

CLASS(Rose)

??? {

??????? float price;

??????? int?? month;

??? };

?

void main()

??? {

????? Rose rose;

????? rose.price = 20.5;

????? rose.month = 6;

????? printf("price= %6.2f\n", rose.price);

????? printf("month= %d\n", rose.month);

????? getchar();

????? return 0;

??? }

?

此Rose类的对象rose在内存中占了一块空间,内含两个属性──price及month,如下﹕

?

????????????? rose.price?? rose.month

???????????? ╭──────┬──────╮

? rose对象?? │? 20.5????? │??? 6?????? │

???????????? ╰──────┴──────╯

?

此对象代表手上那朵花,而price和month两个属性描述着该朵花的特征。

??? 如果桌上有一朵花,且

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值