題目: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...