From 414aec98b546d11698af7fdcb441e8080da6e46a Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev <68247567+stoychoX@users.noreply.github.com> Date: Thu, 12 May 2022 22:21:57 +0300 Subject: Add files via upload --- Utills/Kindle/string.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Utills/Kindle/string.h (limited to 'Utills/Kindle/string.h') diff --git a/Utills/Kindle/string.h b/Utills/Kindle/string.h new file mode 100644 index 0000000..d5a06be --- /dev/null +++ b/Utills/Kindle/string.h @@ -0,0 +1,42 @@ +#pragma once + +#include +#include +class string +{ + char* str; + size_t size; + + void copyFrom(const string& other); + void free(); + +public: + string(); + string(const char*); + + string(const string&); + + string(string&&); //move constructor that accepts rvalue; + + string& operator=(const string& other); + string& operator=(string&& other); //move op= that accepts rvalue; + + ~string(); + + size_t getSize() const; + void concat(const string& other); + + const char* c_str() const; + + string& operator+=(const string& other); + + friend std::ostream& operator<<(std::ostream& stream, const string& str); + friend std::istream& operator>>(std::istream& stream, string& str); + void getLine(std::istream& out); +}; + +string operator+(const string& lhs, const string& rhs); + +bool operator==(const string& lhs, const string& rhs); +bool operator<=(const string& lhs, const string& rhs); +bool operator<(const string& lhs, const string& rhs); \ No newline at end of file -- cgit v1.3.1-23-gd82d