2
2
3
3
#include < stdexcept>
4
4
5
- Alcohol::Alcohol (const std::string& name, size_t amount, size_t basePrice, size_t percentage)
6
- : Cargo(name, amount, basePrice)
7
- , percentage_(percentage)
8
- {}
5
+ Alcohol::Alcohol (const std::string& name, size_t amount, size_t basePrice, size_t percentage)
6
+ : Cargo(name, amount, basePrice), percentage_(percentage) {}
9
7
10
8
Cargo& Alcohol::operator +=(size_t amount) {
11
9
if (amount_ + amount > MAX_AMOUNT_OF_CARGO) {
@@ -20,9 +18,13 @@ Cargo& Alcohol::operator-=(size_t amount) {
20
18
return *this ;
21
19
}
22
20
23
- bool Alcohol::operator ==(const Cargo& alcohol) const {
24
- // TODO:
25
- return alcohol.getAmount () == amount_ ? true : false ;
21
+ bool Alcohol::operator ==(const Cargo& cargo) const {
22
+ if (typeid (cargo) == typeid (Alcohol)) {
23
+ const Alcohol* alcohol = static_cast <const Alcohol*>(&cargo);
24
+ return name_ == alcohol->getName () && basePrice_ == alcohol->getBasePrice () &&
25
+ percentage_ == alcohol->getPercentage ();
26
+ }
27
+ return false ;
26
28
}
27
29
28
30
size_t Alcohol::getPrice () const {
@@ -33,7 +35,6 @@ size_t Alcohol::getPrice() const {
33
35
void Alcohol::nextDay () {
34
36
}
35
37
36
-
37
38
size_t Alcohol::getPercentage () const {
38
39
return percentage_;
39
40
}
0 commit comments