-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHotDog.cpp
96 lines (80 loc) · 1.76 KB
/
HotDog.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include "Condiments.h"
#include "HotDog.h"
#include <typeinfo>
#include <stdio.h>
/* Hotdog class */
// default constructor
HotDog::HotDog() {
// sets to plain
this->next = nullptr;
this->prev = nullptr;
this->condiment = static_cast<unsigned char>(Condiments::Plain);
}
// copy constructor
HotDog::HotDog(const HotDog &in)
{
this->next = in.next;
this->prev = in.prev;
this->condiment = in.condiment;
}
// = operator overload
HotDog & HotDog::operator = (const HotDog &in)
{
this->next = in.next;
this->prev = in.prev;
this->condiment = in.condiment;
return *this;
}
// destructor
HotDog::~HotDog()
{}
/*--OVERLOADED OPERATORS-------------------------------------------------------------------------*/
bool HotDog::operator== (const HotDog & in)
{
if ((typeid(in) == typeid(this) && (this->next == in.next) && (this->prev == in.prev)))
return true;
else
return false;
}
bool HotDog::operator!= (const HotDog & in)
{
if ((typeid(in) != typeid(this) || (this->next != in.next) || (this->prev != in.prev)))
return true;
else
return false;
}
/*-----------------------------------------------------------------------------------------------*/
// setters and getters
void HotDog::setNext(HotDog* in)
{
this->next = in;
}
void HotDog::setPrev(HotDog* in)
{
this->prev = in;
}
// getters
HotDog * HotDog::getNext()
{
return next;
}
HotDog * HotDog::getPrev()
{
return prev;
}
/*------------------------*/
unsigned char HotDog::getCondiment()
{
return this->condiment;
}
//add condiments to end of list
void HotDog::Add(Condiments _c)
{
// cNode n = cNode(_c
this->condiment |= static_cast<unsigned char>(_c);
}
//remove condiments
void HotDog::Minus(Condiments _c)
{
this->condiment = static_cast<unsigned int>(this->condiment ^ static_cast<unsigned char>(_c));
}