blob: 15f7b55acfcd1d5149800c13afc82b76f2632a81 (
plain) (
blame)
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
|
#pragma once
#include <fstream>
class MyString
{
char* str;
size_t size;
void copyFrom(const MyString& other);
void free();
void concatFrom(const MyString& other);
public:
MyString();
MyString(const char*);
MyString(size_t n); //convert constructor
MyString(const MyString&);
MyString(MyString&&); //move constructor that accepts rvalue;
MyString& operator=(const MyString& other);
MyString& operator=(MyString&& other); //move op= that accepts rvalue;
~MyString();
size_t getSize() const;
const char* c_str() const;
MyString& operator+=(const MyString& other);
friend std::ostream& operator<<(std::ostream& stream, const MyString& str);
friend std::istream& operator>>(std::istream& stream, MyString& str);
};
MyString operator+(const MyString& lhs, const MyString& rhs);
bool operator==(const MyString& lhs, const MyString& rhs);
bool operator<=(const MyString& lhs, const MyString& rhs);
bool operator<(const MyString& lhs, const MyString& rhs);
|