P359 usestock2.cpp
IDE Qt Creator 4.0.3
stock.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=share_val*shares;}
public:Stock(); //默认构造函数Stock(const std::string &co,long n=0,double pr=0.0); //构造函数~Stock(); //析构函数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 // STOCK_H
main.cpp
#include <iostream>
#include "stock.h"using namespace std;
//默认构造函数
Stock::Stock()
{cout<<"Default constructor called\n";company="no name";shares=0;share_val=0.0;total_val=0.0;
}
//构造函数
Stock::Stock(const string &co, long n, double pr)
{cout<<"Construcor using"<<co<<" called\n";company=co;if(n<0){cout<<"Number of shares can't be negative;"<<company<<"shares set to 0\n";shares=0;}else{shares=n;}share_val=pr;set_tot();
}
//析构函数
Stock::~Stock()
{cout<<"bye,"<<company<<endl;
}
//对某个公司股票的首次购买
void Stock::acquire(const string &co, long n, double pr)
{company=co;if(n<0){cout<<"Number of shares can't be negative;"<<company<<"shares set to 0.\n";}else{shares=n;}share_val=pr;set_tot();
}
//购买股票
void Stock::buy(long num, double price)
{if(num<0){cout<<"Number of shares purchased can't be negative."<<"Transaction is aborted.\n";}else{shares+=num;share_val=price;set_tot();}
}
//减少持有的股票
void Stock::sell(long num, double price)
{if(num<0){cout<<"Number of shares sold cna't be negative."<<"Transaction is aborted.\n";}else if(num>shares){cout<<"You can't sell more than you have!"<<"Transaction is aborted.\n";}else{shares-=num;share_val=price;set_tot();}
}
//
void Stock::update(double price)
{share_val=price;set_tot();
}
void Stock::show()
{ios_base::fmtflags orig=cout.setf(ios_base::fixed,ios_base::floatfield);std::streamsize prec=cout.precision(3);cout<<"Company:"<<company<<" Shares:"<<shares<<'\n';cout<<" Shares Price:$"<<share_val;cout.precision(3);cout<<" Total Worth:$"<<total_val<<'\n';//show()应重置格式信息,使其恢复到自己被调用前的状态cout.setf(orig,ios_base::floatfield);cout.precision(prec);
}
int main(int argc, char *argv[])
{{cout<<"Using constructos to create new objects\n";Stock stock1("NanoSmart",12,20.0);stock1.show();Stock stock2=Stock("Boffo Objects",2,2.0);stock2.show();cout<<"Assigning stock1 to stock2:\n";stock2=stock1;stock1.show();stock2.show();cout<<"Using a constructor to reset an object\n";stock1=Stock("Nifty Foods",10,50.0); //临时对象stock1.show();cout<<"Done\n";}return 0;
}
运行结果如下
转载于:https://www.cnblogs.com/Manual-Linux/p/9733305.html
P359 usestock2.cpp相关推荐
- C++笔记 对象的创建与消亡
经过 C++ Primer Plus 上的实验发现:对象操作是一个栈的机制. 先被创建的对象,后被释放,而对一个已经具体化的对象进行的任何改变,都会导致旧对象的消亡. 执行的顺序是先构造,再复制,最后 ...
- C++ .h(头文件) 与 .cpp(源文件) 的使用
.h 文件: .h是头文件 ,里面主要是写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等, 注意.h文件写的时候有特定的格式就是开头和结尾 #ifndef TEST_HEAD ...
- 利用VS+MFC+Opencv显示图像和视频所需添加类(CvvImage.h和CvvImage.cpp的源码)。
CvvImage.h代码: #pragma once #ifndef CVVIMAGE_CLASS_DEF #define CVVIMAGE_CLASS_DEF #include "open ...
- UTF-8 CPP的使用
UTF-8 CPP是一个简单.小巧.轻量级.跨平台的UTF-8编码字符串库. 下面对其使用方法进行简单的介绍: 1. 从http://sourceforge.net/projects/utf ...
- 拇指接龙游戏升级记录03(升级MainScene.cpp)
MainScene是拇指接龙游戏的主游戏场景文件,拥有近5000行代码. 说实在的,实现自cocos2d-x 2.x版本向当下最新的3.8.1版本的升级过程,其中涉及的技术不是一下能够说明的.有些是形 ...
- GATB的使用小例子test.cpp
1.touch test.cpp,,文件夹中 出现test.cpp touch test.cpp 2. test.cpp的内容 #include <gatb/gatb_core.hpp>i ...
- Linux下运行.cpp文件
如何在Ubuntu16下运行一个简单的.cpp文件呢,做法如下: 假设我在桌面上写了一个hell,world程序; 保存为abc.cpp 然后在终端打开: 1.点击保存的文件的属性,看在哪里,我的是在 ...
- 2020-10-26runtime error: member access within null pointer of type ‘struct ListNode‘ (solution.cpp)错
runtime error: member access within null pointer of type 'struct ListNode' (solution.cpp)错误 /*** Def ...
- matlab怎么跑.cpp程序,MATLAB编译cpp文件
目的:打通MATLAB与VC之间的通道,实现用MATLAB调用VC程序,以及VC调用MATLAB程序. 上篇博客实现了将MATLAB的M文件编译成C/C++文件,exe应用程序.这篇实现MATLAB编 ...
最新文章
- SAP产品的Field Extensibility
- 跟我一起做一个vue的小项目(十一)
- 计算机应用12班,计算机应用二班xx毕业论文.doc
- 【Qt】2D绘图之填充规则
- centos 7 mysql随机密码_在centos中安装了mysql5.7之后解决不知道随机的密码的问题...
- MSSQL如何在没有主键的表中删除重复数据
- 全网最细之instanceof和类型转换
- 实践解读丨Python 面向对象三大特征之多态
- 【java】Thread.Sleep 与 Thread.onSpinWait
- css学习_css书写规范
- string.Format字符串格式化说明
- 2021奥维地图不能用了,有没有其他地图软件能替代?
- 《遥感基础导论》知识图——第五章 微波遥感数据
- c 语言入门自学app,C语言入门学习软件
- mysql创建制度账户_Mysql数据库用户管理
- Java-ForkJoinPool详解
- 程序员如何掌握计算机英语(转)
- iOS设备录制屏幕视频
- nonnegative matrix factorization (NMF)的R实现
- IM是做什么?可以用来实现哪些功能?