C 筆記 15 7 容器與繼承

2021-10-09 08:37:18 字數 2292 閱讀 5580

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的所有資料成員和成員函式。...