生活随笔
收集整理的這篇文章主要介紹了
《C++ Primer》第一章的 Sales_item.h头文件源码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Sales_item.h不是C++自帶的,需要自己安裝,這個庫作者已經寫好了,
Sales_item.h 頭文件代碼如下:
#ifndef SALESITEM_H
#define SALESITEM_H
#include <iostream>
#include <string>class Sales_item{
public:Sales_item(const std
::string
&book
):isbn(book
),units_sold(0),revenue(0.0){}Sales_item(std
::istream
&is
){ is
>> *this;}friend std
::istream
& operator>>(std
::istream
&,Sales_item
&);friend std
::ostream
& operator<<(std
::ostream
&,const Sales_item
&);
public:Sales_item
& operator+=(const Sales_item
&);
public:double avg_price() const;bool same_isbn(const Sales_item
&rhs
)const{return isbn
== rhs
.isbn
;}Sales_item():units_sold(0),revenue(0.0){}
public:std
::string isbn
;unsigned units_sold
;double revenue
;
};using std
::istream
;
using std
::ostream
;
Sales_item
operator+(const Sales_item
&,const Sales_item
&);inline bool operator==(const Sales_item
&lhs
,const Sales_item
&rhs
){return lhs
.units_sold
== rhs
.units_sold
&& lhs
.revenue
== rhs
.revenue
&& lhs
.same_isbn(rhs
);
}inline bool operator!=(const Sales_item
&lhs
,const Sales_item
&rhs
){return !(lhs
== rhs
);
}inline Sales_item
& Sales_item
::operator +=(const Sales_item
&rhs
){units_sold
+= rhs
.units_sold
;revenue
+= rhs
.revenue
;return *this;
}inline Sales_item
operator+(const Sales_item
&lhs
,const Sales_item
&rhs
){Sales_item
ret(lhs
);ret
+= rhs
;return ret
;
}inline istream
& operator>>(istream
&in
,Sales_item
&s
){double price
;in
>> s
.isbn
>> s
.units_sold
>> price
;if(in
)s
.revenue
= s
.units_sold
* price
;elses
= Sales_item();return in
;
}inline ostream
& operator<<(ostream
&out
,const Sales_item
&s
){out
<< s
.isbn
<< "\t" <<s
.units_sold
<< "\t" << s
.revenue
<< "\t" << s
.avg_price();return out
;
}inline double Sales_item
::avg_price() const{if(units_sold
)return revenue
/units_sold
;elsereturn 0;
}
#endif
注意,Sales_item.h的儲存路徑要和源代碼的儲存路徑一致。這樣,源代碼的頭文件才可以訪問這個類。
如何安裝頭文件?
DevC++如何安裝自定義頭文件并使用
總結
以上是生活随笔為你收集整理的《C++ Primer》第一章的 Sales_item.h头文件源码的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。