basket類(vs2017編譯)
#include
#include
#include
#include
using
namespace std;
class
quote
quote
(const quote&)=
default
;quote
(quote&&)=
default
; quote&
operator=(
const quote&)=
default
; quote&
operator
=(quote&&)=
default
;virtual
~quote()
=default
;virtual quote*
clone()
const
&virtual quote*
clone()
&& string isbn()
const
virtual
double
net_price
(size_t n)
const
private
: string bookno;
protected
:double price =
0.0;};
class
bulk_quote
:public quote
~bulk_quote()
=default
; bulk_quote*
clone()
const&
bulk_quote*
clone()
&&virtual
double
net_price
(size_t cnt)
const override
private
: size_t min_qty =0;
double discount =
0.0;};
double
print_total
(ostream &os,
const quote &item, size_t n)
class
basket
void
add_item
(const quote& sale)
void
add_item
(quote&& sale)
double
total_receipt
(ostream &os)
const
return sum;
}private
:static
bool
mycompare
(const shared_ptr
&lhs,
const shared_ptr
&rhs)
multiset< shared_ptr
,decltype
(mycompare)
*> items;}
;
vs2013 update4移動操作定義default出現問題
quote
(quote&&)=
default
; quote&
operator
=(quote&&)=
default
;
vs2013不支援引用限制符和nonexcept
bulk_quote*
clone()
const&
bulk_quote*
clone()
&&
成員初始化列表報錯 error c2797
可以用 = ,也可以將初始化放在建構函式裡
multiset< shared_ptr
,decltype
(mycompare)
*> items
;
C 繼承與c 繼承
先說c 吧,之前接觸的多一點,c 只允許單繼承,也就是子類只能從乙個父類中繼承 class person 父類 public void eatfood class student person 子類繼承與父類 在main函式中建立乙個student物件,static void main string...
C 繼承與派生 學習筆記
一 繼承和派生的基本概念 繼承是c 語言中的一種重要的機制,也是物件導向的乙個重要特徵,實現了物件導向程式設計思想中軟體復用的功能。繼承的實質就是通過現有的類的特徵,構造乙個具有現有類特徵的新類,這個新類成為派生類。派生類是從乙個或者多個以前定義的類 基類 繼承資料和函式,同時增加或者重定義資料和函...
C 學習筆記 繼承與多型
1 關於繼承 inheritance 的概念 在c 中有 has a 和 is a 的 兩個概念。1.1 has a 即為在乙個類定義中包含另乙個類的物件 class a class b 1.2 is a 即我們說的繼承 如下,b繼承a,a為基類,b為a的派生類,b繼承了a的所有資料成員和成員函式。...