我们为什么需要类、
用户在实际编程中传统数据类型往往不能够满足实际需要,我们对经常使用的对象需要自定义一种数据结构来满足调用的需求以便于提高程序运行的效率。
类的组成
数据抽象+封装+接口+实现
这个程序的作用是读取入库书籍的ISBN编号
saledata total;//保存当前交易结果变量
if(read(cin,total))//读入第一笔交易
{saledata trans;//保存下一条数据的变量while(read(cin,trans))//读取剩余的交易{if(total.isbn()==trans.isbn())total.combine(trans);//更新else{print(cout,total)<<endl;total=trans;//处理下一本书}}print(cout,total)<<endl;
}else{cerr<<"no data?!"<<endl;
}}
如果检测到有数据读入,定义trans存放交易,后面的while语句
检测到trans有东西了,便使用一个ISBN编号来判断是不是和上一本是一样的,如果一样数目加1,;如果不一样,新建一个条目,算是入库了一本新书
C++的类举例
关于C++类的一些思考,这是一段有关于类的代码:
#include<iostream>
using namespace std;
class box
{public:double price;//单价double length;//长度double tax;//税收double get(void);void set(double pri,double len,double t);};
double box::get(void)
{return price*length*tax;
}
void box::set(double pri,double len,double t){price=pri;length=len;tax=t;}
int main()
{box box1;box box2;box box3;double money=0.0;box1.length=2.0;box1.price=2.0;box1.tax=2.0;box2.length=2.0;box2.price=2.0;box2.tax=2.0;money=box1.length*box1.price*box1.tax;cout<<"money of box1"<<money<<endl;money=box2.length*box2.price*box2.tax;cout<<"money of box2"<<money<<endl;box3.set(2.0,2.0,2.0);money=box3.get();cout<<"money of box3"<<money<<endl;return 0;}
可以看到其中有:
box box1;box box2;box box3;double money=0.0;
这是通过前面的类来定义的:
class box
{public:double price;//单价double length;//长度double tax;//税收double get(void);void set(double pri,double len,double t);};
为了更好演示类的功能,我们通过对box3的set函数定义完成了:
void box::set(double pri,double len,double t){ price=pri;length=len;tax=t;}
最后调用的时候:
box3.set(2.0,2.0,2.0);