类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法组合成一个整洁的包。下面来看一个股票的类。
首先,必须考虑如何表示股票。可以将一股作为基本单元,定义一个表示一股股票的类。然而,这意味着需要100个对象才能表示100股,这不现实。相反,可以将某人当前持有的某种股票作为一个基本单元,数据表示中包含他持有股票数量。一种比较现实的方法是,必须记录最初购买价格和购买日期(用于计算纳税)等内容。另外,还必须管理诸如拆股等事件。首次定义类就考虑这么多因素有些困难,因此我们对其进行简化。具体地说,应该将可执行的操作限制为:
获得股票;
增持;
卖出股票;
更新股票价格;
显示关于所有股票的信息。
可以根据上述清单定义stock类的公有接口(如果您有兴趣,还可以添加其他特性)。为支持该接口,需要存储一些信息。我们再次进行简化。例如,不考虑标准的美式股票计价方式。我们将存储下面的信息:
公司名称;
所持股票的数量;
每股的价格;
股票总值。
为帮助识别类,我们遵循一种常见但不通用的约定——将类名的首字母大写。类的声明如下程序清单所示:
#ifndef STOCK_H_
#define STOCK_H_
#include <iostream>
using namespace std;
class Stock
{
private:
string company;
long shares;
double share_val;
double total_val;
void set_tot() { total_val = shares * share_val; }
public:
Stock(); // default constructor
Stock(const string & co, long n = 0, double pr = 0.0);
~Stock(); // do-nothing destructor
void buy(long num, double price);
void sell(long num, double price);
void update(double price);
void show() const;
const Stock & topval(const Stock & s) const;
};
#endif