操作符過載 二

2022-04-15 17:16:14 字數 2465 閱讀 8084

一,操作符過載案例之字串

1.前言

2.字串類的功能(string.h)

#pragma once# include

using

namespace

std;

/** 建構函式:string str1,string str2("王剛"),string str3 = str2;

* 成員函式:length(),c_str();

* 操作符:<<,>>,=,,!=,==,+

*/class

string

;

2.字串的功能實現(string.cpp)

# define _crt_secure_no_warnings

# include

# include

"string.h

"using

namespace

std;

/*無參建構函式

*/string::string()

/*有參建構函式

*/string::string(

char *ptr)

/*拷貝建構函式

*/string::string(

const string&str)

/*析構函式

*/string::~string()}/*

字串長度

*/int

string::length()

/*獲取字串頭指標

*/const

char *string::c_str()

/*過載左移運算子

*/ostream& operator

<<(ostream& out, string &str)

/*過載右移運算子

*/istream& operator>>(istream& in, string &str)

/*過載賦值運算子,引數為string型別

*/string& string::operator=(string&str)

this->len =str.len;

this->ptr = new

char[this->len+1

]; strcpy(

this->ptr, str.ptr);

return *this;}

/*過載賦值運算子,引數為字元指標型別

*/string& string::operator=(char *str)

this->len =strlen(str);

this->ptr = new

char[this->len + 1

]; strcpy(

this->ptr, str);

return *this;}

/*過載陣列下標運算子

*/char& string::operator(int

pos)

/*過載==運算子,引數為string

*/bool string::operator==(string&str)

if (strcmp(this->ptr, str.ptr)!=0

)

return

true;}

/*過載==運算子,引數為字元指標

*/bool string::operator==(char *str)

if (strcmp(this->ptr, str)!=0

)

return

true;}

/*過載!=運算子,引數為string

*/bool string::operator!=(string&str)

return

true;}

/*過載!=運算子,引數為字元指標

*/bool string::operator!=(char *str)

return

true;}

/*過載加號運算子,引數為字元指標

*/string& string::operator+(char *str)

this->ptr =tmp;

return *this;}

/*過載加號運算子,引數為string

*/string& string::operator+(string&str)

this->ptr =tmp;

return *this

;}

3.字串測試案例(main.c)

# include# include

"string.h

"using

namespace

std;

intmain()

C C 過載操作符(二) 過載操作符

用於訪問一組元素中的乙個元素。預設的,陣列是支援下標訪問的。中的下標稱為 索引,key,唯一標誌符 當乙個物件設計用於包含多個元素時,可以過載操作符 比如乙個字串text包含多個元素 每個元素是乙個字串 text txt helloworld char ch text 0 比如在乙個datastor...

操作符過載

ifndef vertex h define vertex h class vertex vertex float px float py float pz vertex operator const vertex p vertex operator const vertex p void oper...

操作符過載

1.操作符是靜態方法,返回值表示操作結果,引數是運算元。2.操作符過載需要在過載的操作符前加上operator關鍵字。3.最好少用操作符過載,只有在意義明晰而且與內建類的操作一致時才適合使用,以免造成混亂。以建立的分數類 fraction 中的 為例,該分數類中有兩個int型的私有屬性 分子 num...