初识C++的类

//Sales_item.h#ifndef SALESITEM_H
#define SALESITEM_H
#include <iostream>
#include<string>
class Sales_item
{
public:
	std::istream &input(std::istream & in);
	std::ostream & output(std::ostream & out)const;
	double avg_price() const;
	bool same_isbn(Sales_item& rhs)const;
	Sales_item add(Sales_item& other);
	Sales_item::Sales_item() :unit_sale(0), revenue(0){}

private:
	std::string isbn;//isbn号
	int unit_sale;//数量
	double revenue;//总价
};

#endif
//Sales_item.cpp
#include "Sales_item.h"
std::istream& Sales_item::input(std::istream & in){
	double price;
	in >> isbn >> unit_sale >> price;
	if (in)
		revenue = unit_sale*price;
	else
	{
		unit_sale = 0;
		revenue = 0.0;
	}
	return in;
}
std::ostream& Sales_item::output(std::ostream & out)const{
	out << isbn << "\t" << unit_sale << "\t"
		<< revenue << "\t" << avg_price();
	return out;
}

double Sales_item::avg_price() const{
	if (unit_sale)
		return revenue / unit_sale;
	else
		return 0.0;
}
bool Sales_item::same_isbn(Sales_item& rhs)const{
	return isbn == rhs.isbn;
}
Sales_item Sales_item::add(Sales_item& other){
		unit_sale += other.unit_sale;
		revenue += other.revenue;
		return *this;
}

  

//main.cpp
#include <iostream>
//#include <string>
//#include <vector>
//#include <cctype>
//#include <cstring>
//#include <bitset>
#include "Sales_item.h"

using namespace std;

int main(int argc, char **argv)
{
	Sales_item total, trans;
	cout << "Enter some transaction (ctrl + z to end)" << endl;
	if (total.input(cin)){//读入第一个交易
		while (trans.input(cin))
		{
			if (total.same_isbn(trans))
				total.add(trans);
			else
			{
				total.output(cout);
				total = trans;
			}
		}
		//输出最后一个交易
		total.output(cout) << endl;
	}
	else
	{
		cout << "No data!" << endl;
		return -1;
	}

	cout << endl;
	system("pause");
	return 0;
}

  

  

时间: 2024-10-12 20:50:19

初识C++的类的相关文章

2015.12.17 初识OC&amp;iOS 类和对象

iOS是iPhone Operation System的缩写. 使用iOS系统的设备有哪些『iPhone手机,iPad,Apple watch(Watch OS),iPod touch』. 交互层:cocoa touch 操作系统层:iOS 底层:硬件 #include 与 #import的区别 #include完成头文件的导入,可能会导致头文件相互引用和函数\变量的重复定义. eg: 为了解决这个问题,我们必须在文件的前面加上『#ifndef』 #import不仅完成头文件的引入,并且防止头文

初识MFC----运行时类信息机制

1.运行时类信息机制的作用 程序运行过程中,可以获知对象的相关类的信息 2.运行时类信息机制的使用 2.1类必须派生自CObject类 2.2类内必须添加声明宏 DECLARE_DYNAMIC 2.3类外必须添加实现宏 IMPLEMENT_DYNAMIC CObject::IsKindOf(...) -来判断对象是否属于某个类 3.数据结构 struct CRuntimeClass { LPCSTR m_lpszClassName;  //类的名称 int m_nObjectSize;  //类

初识MFC----文档类CDocument

一.MFC的文档 1.相关问题 文档类 - 负责管理数据,封装了和视图窗口以及框架窗口之间的操作 CDocument - 父类CCmdTarget 2.文档类的使用 2.1首先利用pFrame调用LoadFrame函数,创建主框架窗口 2.2在主框架窗口WM_CREATE消息处理中创建视图窗口 2.3在视图窗口WM_CREATE消息处理中将文档类对象和视图类对象建立绑定关系 //文档类用一个链表成员保存和文档类对象相关联的视图类对象 m_viewList.AddTail(pView); //视图

初识jvm-1.Java类的加载机制

转载: jvm系列---纯洁的微笑 地址: http://www.ityouknow.com/jvm.html 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构.类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口. 类加载器并不需要等到某个类被"首次主

初识面向对象-接口类、抽象类、封装

接口类 # java : 面向对象编程# 设计模式 —— 接口# 接口类 : python原生不支持# 抽象类 : python原生支持的from abc import abstractmethod,ABCMetaclass Payment(metaclass=ABCMeta): # 元类 默认的元类 type @abstractmethod def pay(self,money):pass # 没有实现这个方法# 规范 :接口类或者抽象类都可以# 接口类 支持多继承,接口类中的所有的方法都必须

初识面向对象:类

定义一个类: class 类名(大写开头): 属性 = ‘a’ 类名.属性 类名的作用:操作属性.查看属性 例: class Tst: nationality = '中国' #静态属性,不能在类外边修改 def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex print(id(self))#self与t1的内存地址一样 def way(self):#方法,一般情况下必须传self参数,且必须写

Java_Activiti5_菜鸟也来学Activiti5工作流_之初识常用服务类和数据表(二)

1 /** 2 * 代码清单中使用 ProcessEngines类加载默认的流程配置文件(activiti.cfg.xml),再获取各个服务组件的实例. 3 * RepositoryService主要用于管理流程的资源, RuntimeService主要用于流程运行时的流程管理,TaskService主要用于管理流程任务. 4 * 最后, HistoricProcessInstance会将工作的流程历史记录下来. 5 * 6 * activiti.cfg.xml 7 * |--ProcessEn

递归函数、二分查找、面相对象初识、类空间,对象空间、组合、继承

一.递归函数 一般递归100多次,都没有解决的问题,放弃递归. 默认递归深度:998 修改默认递归次数 import sys sys.setrecursionlimit(100000) #设置十万次 count = 0 def func1(): global count count += 1 print(count) func1() func1() 用递归 解决一个年龄问题. alex 他比佩奇 大两岁.  4   age(3) + 2 佩奇 他比日天 大两岁.  3   age(2) + 2

iOS开发之oc(回顾笔记)--类与对象(1)

理论是枯燥的,所以有点长.哈哈哈~ 要学习一门语言,我们首先得了解它,那么 [什么是OC] objectiv-c  简称 OC,是一门基于C语言为基础编写而成的面向对象的语言.完全兼容C语言:可以在OC代码中混入C语言代码,甚至是C++代码: 可以使用OC开发Mac OS X平台和iOS平台的应用程序. (一)首先,先了解一下面向过程和面向对象: [面向过程] 1.面向过程的语言所有语句都是祈使句  2.面向过程的语言是数学逻辑的映射 3.面向过程语言的程序 = 数据 + 算法 C语言就是一门面