4.1 类和成员函数的定义

类(class)和对象(object)用于实现计算机世界中的“封装”(Encapsulation),即把数据(属性)和函数(操作)合成一个整体,这是面向对象程序设计最基本的特性。

C++类的定义

◆  1、在C++中,“类”是一种数据类型。 例如,商场中的商品可以用“商品类”来描述。

商品可以这样描述:
商品名称(用字符串描述),
该商品数量(用整型数描述),
该商品单价(用浮点数描述),
该商品总价(用浮点数描述)。

相应的商品类如下:
class CGoods
{
public :
       char Name[21] ; //对于中文可用wchar_t name[11]
       int Amount ;
       float Price ;
       float Total_value ;
}; //最后的分号不可少

说明:关键字 class 是数据类型说明符,指出下面说明的是类。标识符CGoods是商品这个类的类型名。花括号中是构成类体的一系列的 成员 ,此处为 数据成员 ;关键字 public 是一种访问限定符,表示其后所列为公共成员,就是说可以在外部对这些成员进行访问。

◆  2、类定义的更关键部分是对数据成员的操作。这可以用函数来完成。这些函数也作为类的成员存在!
class CGoods
{
private :
       char Name[21] ;
       int Amount ;
       float Price ;
       float Total_value ;
public :
       void RegisterGoods(char*,int,float); //登记新商品,此处是函数头
       void CountTotal(void) ; //计算商品总价值
       void GetName(char*) ; //读取商品名
       int GetAmount(void) ; //读取商品数量
       float GetPrice(void) ; //读取商品单价
       float GetTotal_value(void) ; //读取商品总价值
};

说明:这个描述商品的方案中,在类中引进了 成员函数 (或称 函数成员 )(member function),也就是函数也成了数据(类)中的 成员 。成员函数可以直接使用类定义中的任一成员,可以处理 数据成员 ,也可调用其他 函数成员

类把数据(事物的属性)和函数(事物的行为——操作) 封装 为一个整体。

C++成员函数的定义

在前面,只对成员函数作了一个声明,或者讲只给出了函数的原型,并没有对函数进行定义。函数定义通常在类的说明之后进行。

商品类CGoods中的成员函数可以如下定义:(在前面的代码后加上以下部分)
void CGoods::RegisterGoods(char* name,int amount, float price)
//登记新商品
{
    //char*是指向字符的指针类型说明,name现可理解为字符串
       strcpy(Name , name) ; //字符串拷贝函数
       Amount=amount ; Price=price ;
}

void CGoods::CountTotal(void) //计算商品总价值
{
       Total_value = Price*Amount;
}

void CGoods::GetName(char* name) //读取商品名
{
       strcpy(name , Name);
}

int CGoods::GetAmount(void) //读取商品数量
{
       return(Amount) ;
}
float CGoods::GetPrice(void) //读取商品单价
{
       return(Price) ;
}

float CGoods::GetTotal_value(void) //读取商品总价值
{
       return(Total_value) ;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值