**如下(具體細節處的分析見**中/**/裡的部分):
#pragma once
#include
#include
#include
//【請填寫**:呼叫stl中vector容器所需要的標頭檔案】
#include
//【請填寫**:呼叫stl中sort演算法所需要的標頭檔案】
using
namespace std;
//這是我們的基類,是個抽象類,用來表示抽象意義上的動物。
// 它有個資料成員用來儲存動物的類別名稱
// 它有個虛函式成員,用來輸出該動物的叫聲,派生類要重新定義該函式,展現個性化叫聲
// 它還有個成員函式,用來獲取該動物的類別名稱
class
canimal
;virtual
void
shout()
=0; string get_class_name()
;};//這是乙個供你參考的派生類
class
ccat
:public canimal
;void
shout()
;};//【請填寫**:】
// 請你從類ccat,以公有的方式派生類cwhitecat
// 其類別名為"white cat"
// 其叫聲是"白貓喵喵"
/*仿照題目中的參考派生類寫即可*/
class
cwhitecat
:public ccat
;void
shout()
;};//【請填寫**:】
// 請你從類canimal,以公有的方式派生類cdog
// 其類別名為"dog"
// 其叫聲是"汪汪"
/*仿照題目中的參考派生類寫即可*/
class
cdog
:public canimal
;void
shout()
;};class
canimallist
/*下面的函式與上面原理相同*/
static
bool
cmp2
(canimal *c1,canimal *c2)
void
add_one
(canimal* one)
//【請填寫**:定義add_one的函式內容,實現向animals列表新增乙個指定物件】
vector>
find_one_type_animals
(string animal_class_name)
return ans;};
void
erase_one_type_animals
(string animal_class_name)}}
void
sort_animals
(bool descend =
true
)// }
// }
/*方法三:利用正規表示式(目前對這一塊還不熟練)*/
}else
// }
// }}}
//這個函式實現讓列表中的每個動物依序吼叫一聲。
void
let_them_speek()
}};
報錯 call to non-constexpr function
報錯部分的**如下:
sortbegin()
,animals.
end(
),cmp2>
;
原因: 將()錯打成了<>, 然後怎麼也找不到錯誤的原因, 網上基本沒有對這個問題的解決方法,都快自閉了,細心才是王道…
主要的思路: 只需要將有關指標的操作改為有關引用的操作即可, 即"->「改為」.";"*「改為」&",其實引用於指標的思想上是統一的,只不過兩者的操作方式有所區別, 故當然可以改用基類的引用
具體**實現如下:
//改過的地方的行末尾會有注釋標記"//"
#pragma once
#include
#include
#include
#include
using
namespace std;
class
canimal
;virtual
void
shout()
=0; string get_class_name()
;};class
ccat
:public canimal
;void
shout()
;};class
cwhitecat
:public ccat
;void
shout()
;};class
cdog
:public canimal
;void
shout()
;};class
canimallist
static
bool
cmp2
(canimal &c1,canimal &c2)
//void
add_one
(canimal & one)
// vector>
find_one_type_animals
(string animal_class_name)
return ans;};
void
erase_one_type_animals
(string animal_class_name)}}
void
sort_animals
(bool descend =
true
)else
}void
let_them_speek()
}};
演算法實驗課
ps 開玩笑的,請隨意 1.格雷碼構造問題 分治法 分治法 the sample input 4the sample output 1111 0111 0011 1011 1001 0001 0101 1101 1100 0100 0000 1000 1010 0010 0110 1110 incl...
C 實驗多型性
桂 林 理 工 大 學 實 驗 報 告 實驗名稱 多型性 日期 2019年 05 月15 日 一 實驗目的 1 掌握運算子過載的方法。2 學習使用虛函式實現動態多型性。二 實驗環境 visual c 三 實驗內容 寫出主要的內容 1 定義point類,有座標x,y兩個成員變數 對point類過載 左...
c 第14課 list容器
list介紹 1 list是乙個雙向鍊錶容器,可高效地進行插入刪除元素。2 list不可以隨機訪問元素,所以不支援at.pos 函式與操作符。it ok it 5 err 3 include list物件的預設構造 list採用採用模板類實現,物件的預設構造形式 list lstt 如 list l...