Skip to content

Commit fbb6fee

Browse files
committed
Define ......50%
1 parent 671b9f4 commit fbb6fee

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed

assign5/user.cpp

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,73 @@ void User::set_friend(size_t index, const std::string& name)
6363
* STUDENT TODO:
6464
* The definitions for your custom operators and special member functions will go here!
6565
*/
66+
std::ostream&
67+
operator<<(std::ostream& os, const User& u) {
68+
os << "User(name=" << u._name << ", friends=[";
69+
70+
for (int i = 0; i < u.size(); ++i) {
71+
os << u._friends[i];
72+
if (i < u.size() - 1) {
73+
os << ", ";
74+
}
75+
}
76+
77+
os << "])";
78+
return os;
79+
}
80+
81+
//
82+
User::~User() {
83+
delete[] _friends;
84+
}
85+
86+
//
87+
User::User(const User& user) : _size(user._size) {
88+
_friends = new std::string[_size];
89+
for (int i = 0; i < _size; i++) {
90+
_friends[i] = user._friends[i];
91+
}
92+
}
93+
94+
//
95+
User& User::operator=(const User& user) {
96+
if (this != &user) {
97+
_name = user._name;
98+
_friends = user._friends;
99+
_size = user._size;
100+
}
101+
return *this;
102+
}
103+
104+
//
105+
User::User(User&& user) noexcept :
106+
_name(user._name), _friends(user._friends),
107+
_size(user._size), _capacity(user._capacity)
108+
{
109+
_name =
110+
_friends =
111+
_size =
112+
}
113+
114+
//
115+
User& User::operator=(User&& user) noexcept
116+
{
117+
if (this != &user) {
118+
delete[] _friends;
119+
_name = user._name;
120+
_friends = user._friends;
121+
_size = user._size;
122+
_capacity = user._capacity;
123+
user._friends = nullptr;
124+
user._size = 0;
125+
}
126+
return *this;
127+
}
128+
129+
User& User::operator+=(const User& user) {
130+
131+
}
132+
133+
User& User::operator<(const User& user) const {
134+
135+
}

assign5/user.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,19 @@ class User
1414
std::string get_name() const;
1515
size_t size() const;
1616
void set_friend(size_t index, const std::string& name);
17+
friend std::ostream& operator<<(std::ostream& os, const User& u);
1718

1819
/**
1920
* STUDENT TODO:
2021
* Your custom operators and special member functions will go here!
2122
*/
23+
~User();
24+
User(const User& user);
25+
User& User::operator=(const User& user);
26+
User::User(User&& user) noexcept;
27+
User& User::operator=(User&& user) noexcept;
28+
User& User::operator+=(const User& user);
29+
bool User::operator<(const User& user) const;
2230

2331
private:
2432
std::string _name;

0 commit comments

Comments
 (0)