类(class)和对象(object)用于实现计算机世界中的“封装”(Encapsulation),即把数据(属性)和函数(操作)合成一个整体,这是面向对象程序设计最基本的特性。
商品可以这样描述:
商品名称(用字符串描述),
该商品数量(用整型数描述),
该商品单价(用浮点数描述),
该商品总价(用浮点数描述)。
相应的商品类如下:
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),也就是函数也成了数据(类)中的 成员 。成员函数可以直接使用类定义中的任一成员,可以处理 数据成员 ,也可调用其他 函数成员 。
类把数据(事物的属性)和函数(事物的行为——操作) 封装 为一个整体。
商品类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) ;
}
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) ;
}