C++的对象和类

文章介绍了C++中的类设计,包括Stock类的接口和实现。Stock类包含了股票的相关属性如公司名称、股票数量、每股价格等,并提供了购买、出售、更新价格等操作。成员函数如acquire、buy和sell在类外实现,内联函数set_tot()用于计算股票总价值。此外,文章还讨论了公有和私有成员的访问控制以及如何在多个文件中使用类。
摘要由CSDN通过智能技术生成
//stock00.h -- Stock class interface
//version 00

#ifndef STOCK00_H_
#define STOCK00_H_

#include <string>  

class Stock  // class关键字 + 类型名
{
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();
};    // note semicolon at the end

#endif

关键字:

class:C++ 关键字 class 指出这些代码定义了一个类设计。

private:私有部分,该关键字可以省略

public:公有部分

使用类对象的程序都可以直接访问公有部分,但只能通过公有成员函数(或友元函数)来访问对象的私有成员。公有成员函数提供了对象和程序之间的接口。类设计尽可能将公有接口和实现细节分开。数据项通常放在私有部分,组成类接口的成员函数放在公有部分。

数据成员和成员函数都可以在类的公有部分和私有部分申请。

在类设计中已经给出了成员函数的函数头,但是没有给出成员函数的具体部分,所以在外部设计成员函数的详细部分的时候,应当使用作用域运算符“::“来指出所属的类,如:

void Stock :: update(double price)

这样的好处在于,任然可以使用update这个函数名来做其他类的成员函数,如:

void Buffoon :: update()
//stock00.cpp -- implementing the Stock class
//version 00
#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;"
                  << 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 << "Number of shares purchased can't be negative."
                  << "Transaction is aborted.\n";
    }
    else
    {
        shares += num;
        share_val = price;
        set_tot();
    }
}

内联函数:

定义在类声明中的函数为内联函数,但是使用inline限定符也可以使定义在类声明之外的函数成为内联函数:

class Stock
{
private:
    ...
    void set_tot();
public:
    ...
};

inline void Stock::set_tot()
{
    total_val = shares * share_val;
}

为了确保内联函数对多文件程序中的所有文件都可用的最简便的方法是:将内敛函数放在定义类的头文件中。

方法使用哪个对象:

首先是创建对象(kate和joe两个对象):

Stock kate, joe;

使用对象的成员函数:

kate.show();
joe.show();

 使用类

比如现在写了一个程序,文件名为usestock0.cpp,他调用了stock00.cpp中的类,那么只需要将usestock0.cpp和stock00.cpp一起编译,并将stock00.h放在当前文件夹中。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值