类是属于用户自定义的数据类型, 并且该类型的数据具自己的变量和可以实现的函数, 也就是类中说描述的方法。通常来说, 一个类的定义包含两部分的内容, 一是该类的属性, 另一部分是它所拥有的方法。
例如,可以以股票购买为例,要表示一个公司的股票状况,就要表示出公司持有股票,每股的价格,是否有售出和买入的情况;要定义stock类的公有接口,定义一个公司的股票信息。我们将存储下面的信息,也就是成员属性:
公司名称company;
所持股票的数量shares;
每股的价格share_value;
股票总值 total_value;
还有的部分就是可以实现的函数,也就是成员方法:
void acquare(const std::string & co,long n,double pr);
void buy(long num,double price);
void sell(long num,double pricce);
void update(double price );
void show();
接下来定义股票类Stock。一般来说,类规范由两个部分组成。
1.类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述公有接口。
2.类方法定义:描述如何实现类成员函数。
简单地说,类声明提供了类的蓝图,而方法定义则则提供了细节。
===========================stock00.h======================================
#ifndef STOCK00_H_
#define STOCK00_H_
#include<string>
class Stock
{
/*&&&&&&&&&&&&&&&
权限修饰符:
public: 类中的成员可以通过对象在外部访问
private:类中的成员不可以通过对象在外部访问
protected:类中的成员不可以通过对象在外部访问
private和protected区别:
体现在继承的时候,子类可以使用父类的保护成员,但是子类不能使用父类的私有成员
保护:对外隐藏,对子类不隐藏
私有:到处隐藏
公有:谁都可以用
&&&&&&&&&&&&&&&*/
private: //定义成员属性
std::string company;
long shares;
double share_val;
double total_value;
void set_tot()
{
total_value =shares * share_val;
}
public: //定义成员方法,具体实现在stcok00.cpp中
void acquare(const std::string & co,long n,double pr);
void buy(long num,double price);
void sell(long num,double pricce);
void update(double price );
void show();
}
=========================stock00.cpp=======================================
#include<iostream>
include"stock00.h"
//成员函数的具体实现细节
void Stock::acquire(const std::string $ co,long n,double pr)
{
company = co;
if(n<0)
{
std::cout <<"Number of shares can't be negative;"
<< comany << "share set to 0.\n";
shares =0;
}
else
shares =n;
share_val = pr;
set_tot();
}
void Stock::buy(long num,double pr)
{
if(num<0)
{
std::cout <<"Number of shares purchased can't be negative;"
<< "Transation is aborted.\n";
}
else
shares += num;
share_val = prise;
set_tot();
}
void Stock::buy(long num,double price)
{
using std::cout;
if(num<0)
{
cout <<"Number of shares can't be negative."
<< "Transation is aborted.\n";
}
if(num>shares)
{
cout <<"You can't sell more than you have!"
<< "Transation is aborted.\n";
}
else
{
shares-=num;
share_val=price;
set_tot();
}
}
Void Stock::update(double)
{
share_val = price;
set_tot();
}
void Stock::show()
{
using std::cout;
std::cout <<"Company:"<< company;
<<"shares:"<< shares <<'\n'
<<"share price: $"<< share_val
<<"Total WORTH: $"<< total_val << '\n';
}
================================usestock0.cpp==============================
#include<iostream.h>
#include"stock00.h"
int main()
{
Stock user1;//定义Stock类的对象,通过对象去访问成员函数
user1.auquire("company1",20.12.5);
user1.show();
user1.buy(15.18.125);
user1.show();
user1.sell(400,20.00)
user1.show();
user1.buy(300000,17.50);
user1.show();
user1.sell(300000,0.70);
user1.show();
return 0;
}