From f27b1d373ad33027f337bf96f2b8b8c3ac05917d Mon Sep 17 00:00:00 2001 From: waitti <waitti@foxmail.com> Date: Sat, 19 Jun 2021 18:53:19 +0800 Subject: [PATCH] fix: add delete but no use --- src/lib/stl/list.h | 4 +++- src/lib/stl/string.cpp | 26 ++++++++++++++++++++++++++ src/lib/stl/string.h | 6 ++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/lib/stl/list.h b/src/lib/stl/list.h index 61e18b3..d589849 100644 --- a/src/lib/stl/list.h +++ b/src/lib/stl/list.h @@ -118,7 +118,9 @@ struct List{ List<T>& operator=(const List<T>& list){ // TODO:free - // pass + while (start!= nullptr){ + pop_front(); + } // copy start=end=nullptr; diff --git a/src/lib/stl/string.cpp b/src/lib/stl/string.cpp index 6e13246..eb4becb 100644 --- a/src/lib/stl/string.cpp +++ b/src/lib/stl/string.cpp @@ -7,6 +7,17 @@ String::String(const char* str){ memcpy(data,str,_length+1); } +String& String::operator=(const String& str){ + delete[] data; + + _length= str._length; + _capacity=_length+1; + data=new char[_capacity]; + memcpy(data,str.data,_length+1); + + return *this; +} + String& String::operator=(const char* str){ delete[] data; @@ -35,6 +46,17 @@ String::String(const String& b){ memcpy(data,b.data,_capacity); } +String::String(String&& b){ + _capacity=b._capacity; + _length=b._length; + data=b.data; + // init b to empty + b._capacity=__INIT_CAPACITY; + b._length=0; + b.data=new char [b._capacity]; + memset(b.data,0,__INIT_CAPACITY); +} + char* String::c_str()const{ return data; } @@ -142,4 +164,8 @@ ostream& operator <<(ostream& os,unsigned long long n){ return os; } +String::~String() { + delete data; +} + ostream cout; diff --git a/src/lib/stl/string.h b/src/lib/stl/string.h index 6690e6c..13e4c16 100644 --- a/src/lib/stl/string.h +++ b/src/lib/stl/string.h @@ -12,14 +12,20 @@ public: String(const char* str); + String& operator=(const String& str); + String& operator=(const char* str); String(); + ~String(); + String(int length); String(const String& b); + String(String&& b); + char* c_str()const; int length()const; -- GitLab