C++的对象和类

鼠扑  金牌会员 | 2023-4-13 16:41:19 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 974|帖子 974|积分 2922

一、问题引入

区分面向过程编程和面向对象编程的最大的特性就是 类,类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法组合成一个整洁的包。
那么如何声明类、定义类、调用类?
C++ Primer Plus:中文版 (第六版) 的股票类举例说明。
二、解决过程

2-1 类抽象

股票类的抽象化

  • 获得股票
  • 增持股票
  • 卖出股票
  • 更新股票价格
  • 显示所持股票的信息
股票的数据类型抽象化

  • 发行股票公司名称
  • 所持股票的数量
  • 股票的单价
  • 股票总值
2-2 类的代码实现

1️⃣ stock.h
  1. #ifndef __STOCK_H__
  2. #define __STOCK_H__
  3. #include <string>
  4. // 类的声明
  5. class Stock {
  6. public:
  7.     Stock(); // default constructor
  8.     Stock(const std::string & co, long n = 0, double pr = 0.0); // constructor prototype with some default arguments
  9.     ~Stock(); // noisy destructor
  10.     void get_stock(const std::string & co, long n, double pr);  // 获得股票
  11.     void add_stock(long num, double price);                     // 增持股票
  12.     void sell_stock(long num, double price);                    // 卖出股票
  13.     void update_price(double price);                            // 更新股票价格
  14.     void show();                                                // 显示所持股票的信息
  15. private:
  16.     std::string company; // 发行股票公司名称
  17.     long shares;         // 所持股票的数量
  18.     double share_val;    // 股票的单价
  19.     double total_val;    // 股票总值
  20.         void set_total() {total_val = shares * share_val;};
  21. };
  22. #endif
复制代码
2️⃣ stock.cpp
[code]#include "stock.h"#include // default constructorStock::Stock(){}// class destructorStock::~Stock() // verbose class destructor{}// 构造函数的参数表示的不是类成员,而是赋给类成员的值。因此,参数名不能与类成员相同,否则出现同名混乱Stock::Stock(const std::string & co, long n, double pr) {    company = co;    if(n < 0)    {        std::cerr
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

鼠扑

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表