类定义,声明,使用

定义类,类规范一般来说由两个部分组成:

  • 类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述共有接口。
  • 类方法定义: 描述如何实现类成员函数。

类声明提供了类的蓝图,而方法提供了细节

在库文件中定义类:

//ss.h
#ifndef STOCK_H_
#define STOCK_H_
#include<string>
class Stock
{
private:
        std::string company;
        long shares;
        double share_val;
        double total_val;
        void set_tot() { total_val = shares * share_val; }
public:
        void acquire(const std::string& co, long n, double pr);
        void buy(long num, double price);
        void sell(long num, double price);
        void update(double price);
        void show();
};
#endif

使用类对象的程序都可以直接访问公有部分,但只能通过共有成员函数来访问对象的私有成员。
共有类成员是程序和对象的私有成员之间的桥梁,提供了对象与程序之间的接口。
关键字class标识类定义,类名称称为这个用户定义的类型的名称。



实现类成员函数:

  • 定义类成员函数时,使用作用域解析运算符(::)来标识函数所属的类
  • 类方法可以访问类的private组件
//file00.cpp
#include<iostream>
#include"ss.h"
void Stock::acquire(const std::string& co, long n, double pr)
{
        company = co;
        if (n < 0)
        {
               std::cout << "you don't have money!!!"
                       << company << "shares set to 0.\n";
               shares = 0;
        }
        else
               shares = n;
        share_val = pr;
        set_tot();
}
void Stock::buy(long num, double price)
{
        if (num < 0)
        {
               std::cout << "Shares don't negative.\n";
        }
        else
        {
               shares += num;
               share_val = price;
               set_tot();
        }
}
void Stock::sell(long num, double price)
{
        using std::cout;
        if (num < 0)
        {
               cout << "Num can't be negative."
                       << "\n";
        }
        else if (num > shares)
        {
               cout << "you don't have enough money.";
        }
        else
        {
               shares -= num;
               share_val = price;
               set_tot();
        }
}
void Stock::update(double price)
{
        share_val = price;
        set_tot();
}
void Stock::show()
{
        std::cout << "Company: " << company << "     shares: " << shares
               << "    share price: " << share_val << "      total Worth: "
               << total_val << std::endl;
}

使用类:

//file01.cpp
#include<iostream>
#include"ss.h"
int main()
{
        Stock ls;
        ls.acquire("love",892137,9.45);
        ls.show();
        ls.buy(236789, 9.32);
        ls.show();
        ls.sell(453654, 3.89);
        ls.show();
        return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值