File tree Expand file tree Collapse file tree 2 files changed +78
-0
lines changed
Expand file tree Collapse file tree 2 files changed +78
-0
lines changed Original file line number Diff line number Diff 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+ }
Original file line number Diff line number Diff 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
2331private:
2432 std::string _name;
You can’t perform that action at this time.
0 commit comments