運算子的過載:對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。
本**實現的成員函式有建構函式、拷貝建構函式、=運算子、+運算子(類內實現物件加物件,物件加字串,類外實現字串加物件)、析構函式、《運算子、!=運算子、[ ]運算子、《輸出符(類外實現)。
兩個類外實現的函式用了友元函式,類內由於有this指標,形參省略左面的,類外沒有this指標,所以形參都不可省略。
由於版本問題,用#pragma warning(disable:4996);遮蔽不安全的提示。
**如下:
#include#includeusing namespace std;
#pragma warning(disable:4996);
class string
string(const string& rhs)
string& operator=(const string& rhs)
return *this;
} const string operator+(const string& rhs)
const string operator+(char* rhs)
~string()
bool operator<(const string& rhs)
bool operator!=(const string& rhs)
char& operator(int index)
private:
char* mptr;
friend const string operator+(char*, const string&);
friend std::ostream& operator<<(std::ostream&, const string&);
};const string operator+(char* lhs, const string& rhs)
std::ostream& operator<<(std::ostream& out, const string& rhs)
int main()
if (str1 != str2)
char a = str1[0];
std::cout << a << std::endl;
return 0;
}
字串類 運算子過載
mystring.h define crt secure no warnings includeusing namespace std 在這裡定義類只寫類的函式名,不寫類的函式體 c中沒有字串,字串 c風格字串 空串 class mystring const char c str2 int leng...
c String字串類的運算子過載
在c 中有乙個新定義的型別string,可以不用那麼麻煩的操作字串,並且一些高階的運算子過載讓她的使用更加便捷 下面是string類的定義和成員函式的定義 ifndef operator operator h define operator operator h include includeusi...
字串類中的運算子過載
ifndef string h define string h include using namespace std class string endif include string.h include include include using namespace std string str...