From 086675f2e8b421f811ffc0ea140dc1b4f2b85e0d Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 19 Apr 2022 20:25:32 +0300 Subject: Add files via upload --- Sem. 09/StringPool/MyString/MyString.h | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Sem. 09/StringPool/MyString/MyString.h (limited to 'Sem. 09/StringPool/MyString/MyString.h') diff --git a/Sem. 09/StringPool/MyString/MyString.h b/Sem. 09/StringPool/MyString/MyString.h new file mode 100644 index 0000000..cabc311 --- /dev/null +++ b/Sem. 09/StringPool/MyString/MyString.h @@ -0,0 +1,44 @@ +#pragma once + +#include +class MyString +{ + char* str; + size_t size; + + void copyFrom(const MyString& other); + void free(); + +public: + MyString(); + MyString(const char*); + + 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; + void concat(const MyString& other); + + 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); + + +//MyString name = "sdfsdf" \ No newline at end of file -- cgit v1.3.1-23-gd82d