C MyString類的簡單實現

2021-07-04 23:08:12 字數 1695 閱讀 9705

題目:string類的簡單實現,本文中此類名為mystring

實現思路:

1 只要建構函式執行成功(其中pdata_不為空)

2 建構函式可通過char*,字串常量構造

3 過載運算子=(返回值為mystring),實現拷貝建構函式(深拷貝,返回值為mystring&)

4 過載運算子<<,使之可通過cout輸出

5 實現字串長度,字串是否為空函式

6 成員變數使用char* pdata_儲存字串,使用int length_儲存字串長度

mystring.h

#pragma once

#include class mystring

friend std::ostream& operator<<(std::ostream& os, const mystring &rhs);

private:

char *pdata_;

size_t length_;

};std::ostream& operator<<(std::ostream& os, const mystring &rhs);

mystring.cpp

#include "mystring.h"

#include mystring::mystring(const char *pstr)

else }

mystring::~mystring()

}mystring::mystring(const mystring& rhs)

else }

mystring& mystring::operator=(const mystring& rhs)

mystring newstring(rhs);

char*temp = newstring.pdata_;

newstring.pdata_ = pdata_;

pdata_ = temp;

length_ = rhs.length_;

return *this;

}mystring mystring::operator+(const mystring& rhs)

return newstring;

}bool mystring::empty()

else }

std::ostream& operator<<(std::ostream& os, const mystring &rhs)

main.cpp 測試**

#include #include "mystring.h"

using namespace std;

int main()

else

str = "fivestar";

cout << "str = " << str << endl;

if (str.empty())

else

mystring str2 = " love a lot of girls";

cout <<"str2.size() = "<< str2.size() << endl;

cout << str + str2 << endl;

return 0;

}

string類的簡單實現

include class string string string const char ch else string string const string str string string string string operator const string str string stri...

string類的簡單實現

string類是stl裡面個乙個基礎類,同時也是乙個容器。stl在string類裡面塞了很多東西,大概有106個成員函式,以及大量的typedef 巨集,晦澀難懂。本文只是簡單通過物件導向的方法簡單實現了乙個string,以後會在此基礎進行擴充和改進。ifndef mystring h define...

日期類的簡單實現

日期類的簡單實現 1 對於一些運算子的過載 以下是我們建立乙個日期類及最基本的函式宣告。includeusing namespace std class date date operator const date date date operator date operator int date o...